diff --git a/src/pages/sign/index.tsx b/src/pages/sign/index.tsx index dbbcd98..dd31938 100644 --- a/src/pages/sign/index.tsx +++ b/src/pages/sign/index.tsx @@ -536,7 +536,11 @@ export const SignPage = () => { setIsLoading(true) const arrayBuffer = await decrypt(selectedFile) - if (!arrayBuffer) return + if (!arrayBuffer) { + setIsLoading(false) + toast.error('Error decrypting file') + return + } handleDecryptedArrayBuffer(arrayBuffer) } @@ -771,14 +775,9 @@ export const SignPage = () => { 2 ) - const zip = new JSZip() - + const zip = await getZipWithFiles(meta, files) zip.file('meta.json', stringifiedMeta) - for (const [fileName, file] of Object.entries(files)) { - zip.file(`files/${fileName}`, await file.arrayBuffer()) - } - const arrayBuffer = await zip .generateAsync({ type: 'arraybuffer', @@ -807,16 +806,11 @@ export const SignPage = () => { const handleEncryptedExport = async () => { if (Object.entries(files).length === 0 || !meta) return - const zip = new JSZip() - const stringifiedMeta = JSON.stringify(meta, null, 2) + const zip = await getZipWithFiles(meta, files) zip.file('meta.json', stringifiedMeta) - for (const [fileName, file] of Object.entries(files)) { - zip.file(`files/${fileName}`, await file.arrayBuffer()) - } - const arrayBuffer = await zip .generateAsync({ type: 'arraybuffer', diff --git a/src/utils/file.ts b/src/utils/file.ts index 84b30fc..c08d5e7 100644 --- a/src/utils/file.ts +++ b/src/utils/file.ts @@ -20,7 +20,7 @@ export const getZipWithFiles = async ( for (const [fileName, file] of Object.entries(files)) { // Handle PDF Files, add marks - if (file.isPdf) { + if (file.isPdf && fileName in marksByFileNamePage) { const blob = await addMarks(file, marksByFileNamePage[fileName]) zip.file(`marked/${fileName}`, blob) }