From 056a19b946fe8d06dd3117a55dd121d78570cb21 Mon Sep 17 00:00:00 2001 From: diced Date: Tue, 3 Mar 2026 23:52:53 -0800 Subject: [PATCH] feat: max files per upload (#991) --- .../20260304074731_max_files_per_upload/migration.sql | 2 ++ prisma/schema.prisma | 1 + src/components/pages/serverActions/ActionButton.tsx | 1 - src/components/pages/serverSettings/parts/Files.tsx | 10 ++++++++++ src/lib/config/read/db.ts | 1 + src/lib/config/read/env.ts | 1 + src/lib/config/read/index.ts | 1 + src/lib/config/validate.ts | 1 + src/server/index.ts | 1 + src/server/routes/api/server/settings/index.ts | 1 + 10 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 prisma/migrations/20260304074731_max_files_per_upload/migration.sql diff --git a/prisma/migrations/20260304074731_max_files_per_upload/migration.sql b/prisma/migrations/20260304074731_max_files_per_upload/migration.sql new file mode 100644 index 00000000..6d922f6e --- /dev/null +++ b/prisma/migrations/20260304074731_max_files_per_upload/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "public"."Zipline" ADD COLUMN "filesMaxFilesPerUpload" INTEGER NOT NULL DEFAULT 1000; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 758db2c3..51a63963 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -46,6 +46,7 @@ model Zipline { filesRandomWordsNumAdjectives Int @default(2) filesRandomWordsSeparator String @default("-") filesDefaultCompressionFormat String? @default("jpg") + filesMaxFilesPerUpload Int @default(1000) urlsRoute String @default("/go") urlsLength Int @default(6) diff --git a/src/components/pages/serverActions/ActionButton.tsx b/src/components/pages/serverActions/ActionButton.tsx index 4b1fb11e..37296a5b 100644 --- a/src/components/pages/serverActions/ActionButton.tsx +++ b/src/components/pages/serverActions/ActionButton.tsx @@ -8,7 +8,6 @@ export default function ActionButton({ onClick, Icon }: { onClick: () => void; I ({ initialValues: { filesRoute: '/u', @@ -52,6 +53,7 @@ export default function Files({ filesRandomWordsNumAdjectives: 3, filesRandomWordsSeparator: '-', filesDefaultCompressionFormat: 'jpg', + filesMaxFilesPerUpload: 1000, }, enhanceGetInputProps: (payload) => ({ disabled: data?.tampered?.includes(payload.field) || false, @@ -110,6 +112,7 @@ export default function Files({ filesRandomWordsNumAdjectives: data.settings.filesRandomWordsNumAdjectives ?? 3, filesRandomWordsSeparator: data.settings.filesRandomWordsSeparator ?? '-', filesDefaultCompressionFormat: data.settings.filesDefaultCompressionFormat ?? 'jpg', + filesMaxFilesPerUpload: data.settings.filesMaxFilesPerUpload ?? 1000, }); }, [data]); @@ -218,6 +221,13 @@ export default function Files({ ]} {...form.getInputProps('filesDefaultCompressionFormat')} /> + +