From 3846cbab4af31e812dfc40897b98e8b5173faa4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Tue, 2 Sep 2025 16:31:11 -0500 Subject: [PATCH] fix: save persistent data --- .vscode/settings.json | 9 ++------- packages/varuna/src/index.ts | 5 +++++ packages/website/package.json | 3 +-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0426bc99d..6d8a747ab 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -222,12 +222,7 @@ "yolo", "youtuber", "youtubers", - "zoomable", - "zustand" + "zoomable" ], - "deno.enable": false, - "deno.unstable": false, - "cSpell.enableFiletypes": ["glsl", "proto3"], - "typescript.tsdk": "node_modules\\typescript\\lib", - "liveServer.settings.multiRootWorkspaceName": "blitzkit" + "typescript.tsdk": "node_modules\\typescript\\lib" } diff --git a/packages/varuna/src/index.ts b/packages/varuna/src/index.ts index b640eb393..0592a69aa 100644 --- a/packages/varuna/src/index.ts +++ b/packages/varuna/src/index.ts @@ -20,12 +20,17 @@ export class Varuna { let data = initial; if (this.persistence && typeof localStorage !== "undefined") { + const instance = this; const dehydrated = localStorage.getItem(this.persistence); if (dehydrated) { const rehydrated = JSON.parse(dehydrated) as unknown; data = merge(data, rehydrated); } + + window.addEventListener("beforeunload", () => { + localStorage.setItem(this.persistence!, JSON.stringify(instance.state)); + }); } this.initialized = true; diff --git a/packages/website/package.json b/packages/website/package.json index c6dcff2ab..e3bd2d9ee 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -36,8 +36,7 @@ "react-dom": "^18.3.1", "react-promise-suspense": "^0.3.4", "three": "^0.169.0", - "urlon": "^3.1.0", - "zustand": "^4.5.5" + "urlon": "^3.1.0" }, "devDependencies": { "@astrojs/check": "^0.9.4",