From 47956029dd6f3c305ba8890801d9c067ef0e6bfd Mon Sep 17 00:00:00 2001 From: isxander Date: Sun, 8 Feb 2026 14:57:02 +0000 Subject: [PATCH 1/2] fix modrinth/code#5243: detect file data on multi-part uploads --- .../providers/version/manage-version-modal.ts | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/apps/frontend/src/providers/version/manage-version-modal.ts b/apps/frontend/src/providers/version/manage-version-modal.ts index 9ddf366a1b..e095822b44 100644 --- a/apps/frontend/src/providers/version/manage-version-modal.ts +++ b/apps/frontend/src/providers/version/manage-version-modal.ts @@ -267,15 +267,17 @@ export function createManageVersionContext( if (primaryFileIndex) swapPrimaryFile(primaryFileIndex) } - if ( - filesToAdd.value.length === 1 && - !editingVersion.value && - modal.value?.currentStageIndex === 0 - ) { - if (await rejectOnRedundantWrappedZip(filesToAdd.value[0].file)) return - - await addDetectedData() - modal.value?.nextStage() + if (!editingVersion.value && modal.value?.currentStageIndex === 0) { + if (primaryFileIndex !== null) { + const primaryFileData = filesToAdd.value[0]?.file + if (primaryFileData) { + if (await rejectOnRedundantWrappedZip(primaryFileData)) return + await addDetectedData(primaryFileData) + } + if (filesToAdd.value.length === 1 && primaryFileData) { + modal.value?.nextStage() + } + } } handlingNewFiles.value = false @@ -286,7 +288,7 @@ export function createManageVersionContext( filesToAdd.value[0] = { file } } if (await rejectOnRedundantWrappedZip(file)) return - await addDetectedData() + await addDetectedData(file) } async function swapPrimaryFile(index: number) { @@ -297,7 +299,7 @@ export function createManageVersionContext( ;[files[0], files[index]] = [files[index], files[0]] if (await rejectOnRedundantWrappedZip(files[0].file)) return - await addDetectedData() + await addDetectedData(files[0].file) } const tags = useGeneratedState() @@ -490,10 +492,10 @@ export function createManageVersionContext( return 0 } - const addDetectedData = async () => { + const addDetectedData = async (file?: File) => { if (editingVersion.value) return - const primaryFileData = filesToAdd.value[0]?.file + const primaryFileData = file ?? filesToAdd.value[0]?.file if (!primaryFileData) return try { From fd62f6a74d3bd22156934e8c17634596e9fd228e Mon Sep 17 00:00:00 2001 From: isxander Date: Mon, 9 Feb 2026 12:44:50 +0000 Subject: [PATCH 2/2] fix return early not making handlingNewFiles = false --- apps/frontend/src/providers/version/manage-version-modal.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/apps/frontend/src/providers/version/manage-version-modal.ts b/apps/frontend/src/providers/version/manage-version-modal.ts index e095822b44..2d5b911391 100644 --- a/apps/frontend/src/providers/version/manage-version-modal.ts +++ b/apps/frontend/src/providers/version/manage-version-modal.ts @@ -271,7 +271,10 @@ export function createManageVersionContext( if (primaryFileIndex !== null) { const primaryFileData = filesToAdd.value[0]?.file if (primaryFileData) { - if (await rejectOnRedundantWrappedZip(primaryFileData)) return + if (await rejectOnRedundantWrappedZip(primaryFileData)) { + handlingNewFiles.value = false + return + } await addDetectedData(primaryFileData) } if (filesToAdd.value.length === 1 && primaryFileData) {