aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-10-25 00:11:35 -0700
committerAdam Soltys <[email protected]>2022-10-25 00:11:35 -0700
commitb1f81daaab3b04e8ae0b3e4edd4984aeade8098e (patch)
tree97369f2a128b778a0344b7a6e7458de47eab9769 /src/lib
parent0e17224e71296cf6a0336c5a2e7340a3b63cd2dc (diff)
downloadcoinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.tar.gz
coinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.zip
send pin
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/store.js11
-rw-r--r--src/lib/utils.js2
2 files changed, 11 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');
diff --git a/src/lib/utils.js b/src/lib/utils.js
index d8a7b60c..7eeab648 100644
--- a/src/lib/utils.js
+++ b/src/lib/utils.js
@@ -42,6 +42,8 @@ export const post = (url, body, headers) => {
throw new Error(body);
}
+
+ if (body.error) throw body.error;
if (body instanceof Error) throw body;
if (body.name === 'Error') throw new Error(body.message);