aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/send/user
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/routes/send/user
parent0e17224e71296cf6a0336c5a2e7340a3b63cd2dc (diff)
downloadcoinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.tar.gz
coinos-ui-b1f81daaab3b04e8ae0b3e4edd4984aeade8098e.zip
send pin
Diffstat (limited to 'src/routes/send/user')
-rw-r--r--src/routes/send/user/[username]/[...amount]/+page.server.js15
-rw-r--r--src/routes/send/user/[username]/[...amount]/+page.svelte16
2 files changed, 25 insertions, 6 deletions
diff --git a/src/routes/send/user/[username]/[...amount]/+page.server.js b/src/routes/send/user/[username]/[...amount]/+page.server.js
index 12bae186..a659eef3 100644
--- a/src/routes/send/user/[username]/[...amount]/+page.server.js
+++ b/src/routes/send/user/[username]/[...amount]/+page.server.js
@@ -11,14 +11,19 @@ export async function load({ params, parent }) {
export const actions = {
default: async ({ cookies, request }) => {
- let body = Object.fromEntries(await request.formData());
- let { amount, confirmed } = body;
+ try {
+ let body = Object.fromEntries(await request.formData());
+ let { amount, 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/user/[username]/[...amount]/+page.svelte b/src/routes/send/user/[username]/[...amount]/+page.svelte
index e50acd5b..6f4cb313 100644
--- a/src/routes/send/user/[username]/[...amount]/+page.svelte
+++ b/src/routes/send/user/[username]/[...amount]/+page.svelte
@@ -1,10 +1,11 @@
<script>
import { goto } from '$app/navigation';
- import { selectedRate } from '$lib/store';
+ import { pin, selectedRate } from '$lib/store';
import { enhance } from '$app/forms';
import { Avatar, Icon, Numpad, Spinner } from '$comp';
import { page } from '$app/stores';
import { back, f, s, sats } from '$lib/utils';
+
export let data;
export let form;
@@ -31,12 +32,24 @@
let loading;
let submit = () => (loading = true);
+
+ $: update(form);
+ let update = () => {
+ if (form?.message.includes('pin')) $pin = undefined;
+ loading = false;
+ };
</script>
<button class="ml-5 md:ml-20 mt-5 md:mt-10 hover:opacity-80" on:click={handleBack}>
<Icon icon="arrow-left" style="w-10" />
</button>
+{#if form?.message}
+ <div class="text-red-600 text-center">
+ {form.message}
+ </div>
+{/if}
+
<div class="container px-4 mt-20 max-w-xl mx-auto">
{#if amount}
<div class="text-center mb-8">
@@ -63,6 +76,7 @@
<input name="amount" value={amount} type="hidden" />
<input name="username" value={recipient.username} type="hidden" />
<input name="confirmed" value={form?.confirm} type="hidden" />
+ <input name="pin" value={$pin} type="hidden" />
<div class="flex w-full">
{#if amount}