aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/+layout.svelte
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-04-17 23:03:59 -0700
committerAdam Soltys <[email protected]>2023-04-17 23:03:59 -0700
commit702e6ed3516be6dbd82afbffcb3eb4704a3e03b4 (patch)
tree273cada8ce346bf1e44207b081ecdbcb6b0ac63d /src/routes/(app)/+layout.svelte
parentfae19aaf71cb2581011d3a0488566da441122b04 (diff)
downloadcoinos-ui-702e6ed3516be6dbd82afbffcb3eb4704a3e03b4.tar.gz
coinos-ui-702e6ed3516be6dbd82afbffcb3eb4704a3e03b4.zip
expire pin after 5 minutes
Diffstat (limited to 'src/routes/(app)/+layout.svelte')
-rw-r--r--src/routes/(app)/+layout.svelte33
1 files changed, 24 insertions, 9 deletions
diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte
index 33e953ee..891de9ac 100644
--- a/src/routes/(app)/+layout.svelte
+++ b/src/routes/(app)/+layout.svelte
@@ -2,7 +2,7 @@
import { SvelteToast } from '@zerodevx/svelte-toast';
import { onDestroy, onMount } from 'svelte';
import { close, connect, send } from '$lib/socket';
- import { last, invoice, request, passwordPrompt } from '$lib/store';
+ import { last, invoice, request, passwordPrompt, pin } from '$lib/store';
import { page } from '$app/stores';
import { browser } from '$app/environment';
import { goto } from '$app/navigation';
@@ -16,10 +16,10 @@
let { rate, user, subject, token, rates } = data;
- $: update(data);
- let update = (data) => {
- ({ rate, user, subject, token, rates } = data);
- }
+ $: update(data);
+ let update = (data) => {
+ ({ rate, user, subject, token, rates } = data);
+ };
onMount(() => {
let localStorageLocale = localStorage.getItem(localeLocalStorageKey);
@@ -29,13 +29,17 @@
if (lng) localStorage.setItem(localeLocalStorageKey, lng);
});
- browser && checkSocket();
+ if (browser) {
+ checkSocket();
+ expirePin();
+ }
});
$: browser && connect(token);
let lost,
- timer,
+ checkTimer,
+ expireTimer,
counter = 0;
let checkSocket = () => {
@@ -46,10 +50,21 @@
send('heartbeat', token);
counter = 0;
}
- timer = setTimeout(checkSocket, 1000);
+
+ checkTimer = setTimeout(checkSocket, 1000);
};
- onDestroy(() => browser && clearTimeout(timer));
+ let expirePin = () => {
+ $pin = null;
+ expireTimer = setTimeout(expirePin, 300000);
+ };
+
+ onDestroy(() => {
+ if (browser) {
+ clearTimeout(checkTimer);
+ clearTimeout(expireTimer);
+ }
+ });
</script>
{#if browser && $passwordPrompt}