diff --git a/src/pages/sign/index.tsx b/src/pages/sign/index.tsx index 8720954..63e71dd 100644 --- a/src/pages/sign/index.tsx +++ b/src/pages/sign/index.tsx @@ -33,7 +33,8 @@ import { sendNotification, signEventForMetaFile, updateUsersAppData, - findOtherUserMarks + findOtherUserMarks, + timeout } from '../../utils' import { Container } from '../../components/Container' import { DisplayMeta } from './internal/displayMeta' @@ -276,17 +277,10 @@ export const SignPage = () => { setAuthUrl(url) }) - // Set up timeout promise to handle encryption timeout - const timeoutPromise = new Promise((_, reject) => { - setTimeout(() => { - reject(new Error('Timeout occurred')) - }, 60000) // Timeout duration = 60 seconds - }) - - // decrypt the encryptionKey, with timeout + // decrypt the encryptionKey, with timeout (duration = 60 seconds) const encryptionKey = await Promise.race([ nostrController.nip04Decrypt(sender, key), - timeoutPromise + timeout(60000) ]) .then((res) => { return res @@ -468,20 +462,20 @@ export const SignPage = () => { const fileNames = Object.values(zip.files) .filter((entry) => entry.name.startsWith('files/') && !entry.dir) .map((entry) => entry.name) - .map((entry) => entry.replace(/^files\//, '')) - // generate hashes for all entries in files folder of zipArchive - // these hashes can be used to verify the originality of files - for (const fileName of fileNames) { + for (const zipFilePath of fileNames) { const arrayBuffer = await readContentOfZipEntry( zip, - fileName, + zipFilePath, 'arraybuffer' ) + const fileName = zipFilePath.replace(/^files\//, '') if (arrayBuffer) { files[fileName] = await convertToSigitFile(arrayBuffer, fileName) + // generate hashes for all entries in files folder of zipArchive + // these hashes can be used to verify the originality of files const hash = await getHash(arrayBuffer) if (hash) { fileHashes[fileName] = hash