···33const storage = browser_exists ? localStorage : null;
4455// Generalized Local Storage
66-function persisted<T>(key: string, initial_value: T) {
77- let value : T = $state(initial_value);
66+function persisted<T>(key: string, default_value: T) {
77+ let value : T = $state(default_value);
8899 const initial_local = storage?.getItem(key);
1010 if (initial_local) {
1111- value = JSON.parse(initial_local).value as T;
1111+ try {
1212+ value = JSON.parse(initial_local).value as T;
1313+ if (!value) { update(default_value); }
1414+ }
1515+ catch (e) {
1616+ update(default_value);
1717+ }
1218 }
13191420 function update(new_value : T) {
+1-1
src/routes/+page.svelte
···44 $effect(() => console.log(todo_list));
5566 // TODO: get better ID management
77- let id = 0;
77+ let id = $state(0);
88 let description = $state("");
991010 function randomizeId() {