diff --git a/frontend/src/pages/Reader.tsx b/frontend/src/pages/Reader.tsx index da3f568..555934b 100644 --- a/frontend/src/pages/Reader.tsx +++ b/frontend/src/pages/Reader.tsx @@ -114,27 +114,29 @@ export default function Reader() { images: LetterImageData[], encrypted_dek: string, cryptoUtils: CryptoUtils, - ) => { - if (!images?.length) return; + ): Promise => { + if (!images?.length) return canvasData; const isShared = !!sharingKey; try { if (isShared) { - await decryptCanvasImagesWithSharingKey( - canvasData, - images, - sharingKey, - cryptoUtils, - ); - } else { - await decryptCanvasImages( - canvasData, - images, - encrypted_dek, - // biome-ignore lint/style/noNonNullAssertion: masterKey is guaranteed to be non-null here as isDecryptionKeyAvailable is true - masterKey!, - cryptoUtils, - ); + const { canvasDataWithDecryptedImages } = + await decryptCanvasImagesWithSharingKey( + canvasData, + images, + sharingKey, + cryptoUtils, + ); + return canvasDataWithDecryptedImages; } + const { canvasDataWithDecryptedImages } = await decryptCanvasImages( + canvasData, + images, + encrypted_dek, + // biome-ignore lint/style/noNonNullAssertion: masterKey is guaranteed to be non-null here as isDecryptionKeyAvailable is true + masterKey!, + cryptoUtils, + ); + return canvasDataWithDecryptedImages; } catch (err) { setLogTrace({ message: @@ -142,6 +144,7 @@ export default function Reader() { log: err instanceof Error ? err.message : "Unknown error", type: "WARN", }); + return canvasData; } }; @@ -187,8 +190,13 @@ export default function Reader() { ); const canvasData: CanvasJSON = JSON.parse(decryptedContent); - await decryptImages(canvasData, images, encrypted_dek, cryptoUtils); - setDecryptedCanvasData(canvasData); + const decryptedCanvasData = await decryptImages( + canvasData, + images, + encrypted_dek, + cryptoUtils, + ); + setDecryptedCanvasData(decryptedCanvasData); }; const processLetterData = async (data: LetterResponseData) => {