diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/store.js | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/store.js b/src/lib/store.js index 2fcf21d5..2693e945 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -1,7 +1,7 @@ import { get, writable } from 'svelte/store'; import { browser } from '$app/env'; -const persisted = (k, i) => { +const persistSession = (k, i) => { let s = writable( browser && sessionStorage.getItem(k) && sessionStorage.getItem(k) !== 'undefined' ? JSON.parse(sessionStorage.getItem(k)) @@ -13,12 +13,24 @@ const persisted = (k, i) => { return s; }; +const persistLocal = (k, i) => { + let s = writable( + browser && localStorage.getItem(k) && localStorage.getItem(k) !== 'undefined' + ? JSON.parse(localStorage.getItem(k)) + : i + ); + + s.subscribe((v) => browser && localStorage.setItem(k, JSON.stringify(v))); + + return s; +}; + export const rate = writable(); export const user = writable(); export const invoiceAmount = writable(); export const invoiceAmountFiat = writable(); -export const token = persisted('token'); +export const token = persistSession('token'); export const invoices = writable({}); export const preferredCurrency = writable(); -export const newPayment = writable(); +export const newPayment = persistLocal(); export const colorTheme = writable('from-primary to-gradient'); |
