diff options
| author | Adam Soltys <[email protected]> | 2022-10-25 00:11:35 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-25 00:11:35 -0700 |
| commit | b1f81daaab3b04e8ae0b3e4edd4984aeade8098e (patch) | |
| tree | 97369f2a128b778a0344b7a6e7458de47eab9769 /src/lib/store.js | |
| parent | 0e17224e71296cf6a0336c5a2e7340a3b63cd2dc (diff) | |
| download | coinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.tar.gz coinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.zip | |
send pin
Diffstat (limited to 'src/lib/store.js')
| -rw-r--r-- | src/lib/store.js | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/store.js b/src/lib/store.js index 4e5421ba..c648a657 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -2,13 +2,20 @@ import { get, writable } from 'svelte/store'; import { browser } from '$app/environment'; // creates a Svelte store synced to sessionStorage with the given key and default value -const persistSession = (key, defaultValue) => { +const persistSession = (key, defaultValue, expiry = 60 * 5 * 1000) => { + if (browser && new Date() - expiry > sessionStorage.getItem(key + 'time')) { + console.log('expired', sessionStorage.getItem(key + 'time')); + sessionStorage.removeItem(key); + } + let s = writable( browser && sessionStorage.getItem(key) && sessionStorage.getItem(key) !== 'undefined' ? JSON.parse(sessionStorage.getItem(key)) : defaultValue ); + browser && sessionStorage.setItem(key + 'time', Date.now()); + s.subscribe((v) => browser && sessionStorage.setItem(key, JSON.stringify(v))); return s; @@ -38,4 +45,4 @@ export const colorTheme = writable('from-primary to-gradient'); export const tempProfileFiles = writable(); export const avatarUpload = writable(); export const bannerUpload = writable(); -export const pin = writable(); +export const pin = persistSession('pin'); |
