diff options
| author | Adam Soltys <[email protected]> | 2023-04-17 23:03:59 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-04-17 23:03:59 -0700 |
| commit | 702e6ed3516be6dbd82afbffcb3eb4704a3e03b4 (patch) | |
| tree | 273cada8ce346bf1e44207b081ecdbcb6b0ac63d | |
| parent | fae19aaf71cb2581011d3a0488566da441122b04 (diff) | |
| download | coinos-ui-702e6ed3516be6dbd82afbffcb3eb4704a3e03b4.tar.gz coinos-ui-702e6ed3516be6dbd82afbffcb3eb4704a3e03b4.zip | |
expire pin after 5 minutes
| -rw-r--r-- | src/lib/store.js | 2 | ||||
| -rw-r--r-- | src/routes/(app)/+layout.svelte | 33 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/+page.svelte | 2 | ||||
| -rw-r--r-- | src/routes/(app)/send/+layout.svelte | 3 |
4 files changed, 27 insertions, 13 deletions
diff --git a/src/lib/store.js b/src/lib/store.js index ce984b17..4e88c90c 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -46,7 +46,7 @@ export const newPayment = persistLocal('newPayment'); export const password = persistLocal('password'); export const passwordPrompt = writable(); export const payments = persistLocal('transactions', []); -export const pin = persistSession('pin', undefined); +export const pin = writable(); export const rate = writable(); export const request = writable(); export const requestRedirect = writable(); 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} diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 1b212abe..2bd465a7 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -33,6 +33,8 @@ $: form?.success && success('Settings saved!'); + $: form?.message && fail(form.message); + $: if (form?.message?.startsWith('Pin')) { fail('Wrong pin, try again'); $pin = ''; diff --git a/src/routes/(app)/send/+layout.svelte b/src/routes/(app)/send/+layout.svelte index 6192cd40..47c11f1c 100644 --- a/src/routes/(app)/send/+layout.svelte +++ b/src/routes/(app)/send/+layout.svelte @@ -1,10 +1,7 @@ <script> - import { browser } from '$app/environment'; import { goto } from '$app/navigation'; import { Pin } from '$comp'; import { pin } from '$lib/store'; - import { onMount } from 'svelte'; - import { success, fail, post } from '$lib/utils'; export let data; |
