If a user refreshes the browser or closes the tab, the loaded documents, page configurations, and filled forms are lost. A professional web tool should save the session state locally so the user can pick up exactly where they left off.
Technical Proposal:
- Use
IndexedDB (via a lightweight wrapper like idb or localForage) to save the binary File objects of the imported PDFs.
- Periodically serialize the Zustand store state (
documentOrder, pageOrder, pages, documents) to LocalStorage or IndexedDB.
- On application startup, load the serialized workspace state and re-hydrate the files and object URLs from IndexedDB, displaying the restored canvas.
This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting /reward 100 (replace 100 with the amount).
🕵️♂️ If someone starts working on this issue to earn the rewards, they can comment /try to let everyone know!
🙌 And when they open the PR, they can comment /claim #7 either in the PR description or in a PR's comment.
🪙 Also, everyone can tip any user commenting /tip 20 @YurMil (replace 20 with the amount, and @YurMil with the user to tip).
📖 If you want to learn more, check out our documentation.
If a user refreshes the browser or closes the tab, the loaded documents, page configurations, and filled forms are lost. A professional web tool should save the session state locally so the user can pick up exactly where they left off.
Technical Proposal:
IndexedDB(via a lightweight wrapper likeidborlocalForage) to save the binaryFileobjects of the imported PDFs.documentOrder,pageOrder,pages,documents) to LocalStorage or IndexedDB.This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting
/reward 100(replace100with the amount).🕵️♂️ If someone starts working on this issue to earn the rewards, they can comment
/tryto let everyone know!🙌 And when they open the PR, they can comment
/claim #7either in the PR description or in a PR's comment.🪙 Also, everyone can tip any user commenting
/tip 20 @YurMil(replace20with the amount, and@YurMilwith the user to tip).📖 If you want to learn more, check out our documentation.