From 9d439e85a4d6b95d72b069c5d01bb8d7b322ab5c Mon Sep 17 00:00:00 2001 From: Giulio Alessandrini Date: Tue, 3 Aug 2021 09:44:09 +0200 Subject: [PATCH] Unsuccessful shot at using localStorage It might work in a browser but not server side --- src/lib/stores/todos.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/lib/stores/todos.js b/src/lib/stores/todos.js index 35c3da3..a87e34b 100644 --- a/src/lib/stores/todos.js +++ b/src/lib/stores/todos.js @@ -1,3 +1,31 @@ +import { onMount } from 'svelte'; import { writable } from "svelte/store"; +const localStore = (key, initial) => { + const toString = (value) => JSON.stringify(value, null, 2); + const toObject = JSON.parse; + + if(process.browser) { + if (localStorage.getItem(key) === null) { + localStorage.setItem(key, toString(initial)) + } + + const saved = toObject(localStorage.getItem(key)); + + const { subscribe, set, update } = writable(saved); + + return { + subscribe, + set: value => { + // both return and save in the local storage + localStorage.setItem(key, toString(value)); + return set(value) + }, + update + } + } +} + +// export const todos = localStore('todo-store', []); +console.log("here we are: " + typeof window); export const todos = writable([]); \ No newline at end of file