aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send/+layout.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/(app)/send/+layout.svelte')
-rw-r--r--src/routes/(app)/send/+layout.svelte24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/routes/(app)/send/+layout.svelte b/src/routes/(app)/send/+layout.svelte
index c9122466..2fb732e8 100644
--- a/src/routes/(app)/send/+layout.svelte
+++ b/src/routes/(app)/send/+layout.svelte
@@ -1,18 +1,38 @@
<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;
let loaded;
let { user } = data;
- onMount(() => setTimeout(() => (loaded = true), 50));
+ onMount(() => setTimeout(() => (loaded = true), 500));
+ let cancel = () => goto(`/${user.username}`);
+
+ $: browser && loaded && checkPin($pin);
+ let checkPin = async (p) => {
+ if (p?.length !== 6 || p === JSON.parse(sessionStorage.getItem('pin'))) return;
+ let result;
+ try {
+ result = await post('/pin', { pin: p });
+ } catch (e) {}
+
+ if (result) {
+ success('Pin confirmed');
+ } else {
+ fail('Invalid pin');
+ $pin = '';
+ }
+ };
</script>
{#if loaded && user.haspin && $pin?.length !== 6}
- <Pin />
+ <Pin bind:value={$pin} {cancel} />
{/if}
<slot />