From 3e6bac65a9cc13718866d9dda2cf86856cc17a3a Mon Sep 17 00:00:00 2001 From: Zeu Capua Date: Wed, 17 Jan 2024 00:38:48 -0800 Subject: [PATCH] try catch error if local storage is undefiend when parsed --- src/lib/stores.svelte.ts | 12 +++++++++--- src/routes/+page.svelte | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/lib/stores.svelte.ts b/src/lib/stores.svelte.ts index c799954..ef1c4f5 100644 --- a/src/lib/stores.svelte.ts +++ b/src/lib/stores.svelte.ts @@ -3,12 +3,18 @@ const browser_exists = (typeof window !== "undefined") && (typeof (document) !== const storage = browser_exists ? localStorage : null; // Generalized Local Storage -function persisted(key: string, initial_value: T) { - let value : T = $state(initial_value); +function persisted(key: string, default_value: T) { + let value : T = $state(default_value); const initial_local = storage?.getItem(key); if (initial_local) { - value = JSON.parse(initial_local).value as T; + try { + value = JSON.parse(initial_local).value as T; + if (!value) { update(default_value); } + } + catch (e) { + update(default_value); + } } function update(new_value : T) { diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index b2b72a7..af7c3a1 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -4,7 +4,7 @@ $effect(() => console.log(todo_list)); // TODO: get better ID management - let id = 0; + let id = $state(0); let description = $state(""); function randomizeId() { -- 2.51.2