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