From b1f81daaab3b04e8ae0b3e4edd4984aeade8098e Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 25 Oct 2022 00:11:35 -0700 Subject: send pin --- src/routes/send/+layout.svelte | 18 ++++++++++++++++++ src/routes/send/[uuid=uuid]/+page.server.js | 15 ++++++++++----- src/routes/send/[uuid=uuid]/+page.svelte | 15 ++++++++++++++- src/routes/send/bitcoin/[address]/+page.server.js | 13 +++++++++---- src/routes/send/bitcoin/[address]/+page.svelte | 16 ++++++++++++++++ src/routes/send/lightning/[payreq]/+page.server.js | 16 +++++++++++----- src/routes/send/lightning/[payreq]/+page.svelte | 14 ++++++++++++++ .../send/user/[username]/[...amount]/+page.server.js | 15 ++++++++++----- .../send/user/[username]/[...amount]/+page.svelte | 16 +++++++++++++++- 9 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 src/routes/send/+layout.svelte (limited to 'src/routes') diff --git a/src/routes/send/+layout.svelte b/src/routes/send/+layout.svelte new file mode 100644 index 00000000..c9122466 --- /dev/null +++ b/src/routes/send/+layout.svelte @@ -0,0 +1,18 @@ + + +{#if loaded && user.haspin && $pin?.length !== 6} + +{/if} + + diff --git a/src/routes/send/[uuid=uuid]/+page.server.js b/src/routes/send/[uuid=uuid]/+page.server.js index 661e9e7b..c9c77f70 100644 --- a/src/routes/send/[uuid=uuid]/+page.server.js +++ b/src/routes/send/[uuid=uuid]/+page.server.js @@ -10,14 +10,19 @@ export async function load({ params, parent }) { export const actions = { default: async ({ cookies, params, request }) => { - let body = Object.fromEntries(await request.formData()); - let { confirmed } = body; + try { + let body = Object.fromEntries(await request.formData()); + let { confirmed } = body; - if (!confirmed) { - return invalid(403, { amount, confirm: true }); + if (!confirmed) { + return invalid(403, { amount, confirm: true }); + } + + await post('/send', body, auth(cookies)); + } catch (e) { + return invalid(400, { message: e.message }); } - await post('/send', body, auth(cookies)); throw redirect(307, '/sent'); } }; diff --git a/src/routes/send/[uuid=uuid]/+page.svelte b/src/routes/send/[uuid=uuid]/+page.svelte index aa798bc1..73712f71 100644 --- a/src/routes/send/[uuid=uuid]/+page.svelte +++ b/src/routes/send/[uuid=uuid]/+page.svelte @@ -1,6 +1,6 @@ +{#if form?.message} +
+ {form.message} +
+{/if} +
{#if amount}
@@ -61,6 +73,7 @@ +
{#if amount} diff --git a/src/routes/send/bitcoin/[address]/+page.server.js b/src/routes/send/bitcoin/[address]/+page.server.js index 9b29a6da..642593ab 100644 --- a/src/routes/send/bitcoin/[address]/+page.server.js +++ b/src/routes/send/bitcoin/[address]/+page.server.js @@ -1,11 +1,16 @@ -import { redirect } from '@sveltejs/kit'; +import { invalid, redirect } from '@sveltejs/kit'; import { auth, post } from '$lib/utils'; export const actions = { default: async ({ cookies, request }) => { - let { address, amount } = Object.fromEntries(await request.formData()); - let { tx } = await post('/bitcoin/fee', { address, amount }, auth(cookies)); - await post('/bitcoin/send', { address, tx }, auth(cookies)); + try { + let { address, amount, pin } = Object.fromEntries(await request.formData()); + let { tx } = await post('/bitcoin/fee', { address, amount }, auth(cookies)); + await post('/bitcoin/send', { address, pin, tx }, auth(cookies)); + } catch (e) { + return invalid(400, { message: e.message }); + } + throw redirect(307, '/sent'); } }; diff --git a/src/routes/send/bitcoin/[address]/+page.svelte b/src/routes/send/bitcoin/[address]/+page.svelte index 8c9e72ff..c9023180 100644 --- a/src/routes/send/bitcoin/[address]/+page.svelte +++ b/src/routes/send/bitcoin/[address]/+page.svelte @@ -3,19 +3,33 @@ import { Icon, Numpad, Spinner } from '$comp'; import { page } from '$app/stores'; import { back } from '$lib/utils'; + import { pin } from '$lib/store'; + export let data; + export let form; let { address } = $page.params; let { currency } = data.user; let amount, loading; let submit = () => (loading = true); + $: update(form); + let update = () => { + if (form?.message.includes('pin')) $pin = undefined; + loading = false; + }; +{#if form?.message} +
+ {form.message} +
+{/if} +

Send to

@@ -26,6 +40,8 @@
+ +
+{#if form?.message} +
+ {form.message} +
+{/if} +
{#if amount}
@@ -38,6 +51,7 @@ +
+{#if form?.message} +
+ {form.message} +
+{/if} +
{#if amount}
@@ -63,6 +76,7 @@ +
{#if amount} -- cgit v1.2.3