From 7331eb110b13a6b063ec22176c612cb26940e4bd Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 12 Nov 2022 03:31:54 -0800 Subject: requests flow --- src/lib/invoice.js | 8 +++- src/routes/(app)/[username]/dashboard/+page.svelte | 12 ++--- .../(app)/[username]/request/+page.server.js | 6 +-- .../(app)/[username]/request/[id]/+page.server.js | 18 ++++++- .../(app)/[username]/request/[id]/+page.svelte | 55 +++++++++++++--------- .../[username]/transactions/[...page]/+page.svelte | 2 - src/routes/(app)/invoice/[id]/tip/+page.svelte | 6 ++- 7 files changed, 70 insertions(+), 37 deletions(-) (limited to 'src') diff --git a/src/lib/invoice.js b/src/lib/invoice.js index 6ec7d41b..9e71f905 100644 --- a/src/lib/invoice.js +++ b/src/lib/invoice.js @@ -1,7 +1,7 @@ import { auth, get, post } from '$lib/utils'; import { redirect } from '@sveltejs/kit'; -export default async ({ cookies, request }) => { +export default async ({ cookies, request, url }) => { let form = await request.formData(); let rates = await get('/rates'); @@ -21,7 +21,11 @@ export default async ({ cookies, request }) => { let { uuid } = await post('/invoice', { invoice, user }, auth(cookies)); - if (request_id) throw redirect(307, `/${user.username}/request/${request_id}`); + if (request_id) { + if (url.pathname.endsWith('tip')) + throw redirect(307, `/send/${uuid}`); + throw redirect(307, `/${user.username}/request/${request_id}`); + } if (invoice.prompt) { throw redirect(307, `/invoice/${uuid}/tip`); diff --git a/src/routes/(app)/[username]/dashboard/+page.svelte b/src/routes/(app)/[username]/dashboard/+page.svelte index 3cba081d..ffefc1be 100644 --- a/src/routes/(app)/[username]/dashboard/+page.svelte +++ b/src/routes/(app)/[username]/dashboard/+page.svelte @@ -57,8 +57,8 @@
-
-
+
+
{$selectedRate ? f(accountBalanceFiat, user.currency) : $t('user.dashboard.fetchingRate')}
@@ -109,16 +109,16 @@
{sat(amount)}
@@ -150,7 +150,7 @@
-
+
1
diff --git a/src/routes/(app)/[username]/request/+page.server.js b/src/routes/(app)/[username]/request/+page.server.js index f32c118c..15b06962 100644 --- a/src/routes/(app)/[username]/request/+page.server.js +++ b/src/routes/(app)/[username]/request/+page.server.js @@ -6,9 +6,9 @@ export let load = ({ locals }) => { }; export const actions = { - default: async ({ cookies, request, url }) => { + default: async ({ cookies, locals, request, url }) => { let form = Object.fromEntries(await request.formData()); - await post('/requests', form, auth(cookies)); - throw redirect(307, url.href + '/sent'); + let { id } = await post('/requests', form, auth(cookies)); + throw redirect(307, `/${locals.user.username}/request/${id}`); } }; diff --git a/src/routes/(app)/[username]/request/[id]/+page.server.js b/src/routes/(app)/[username]/request/[id]/+page.server.js index 79db5d42..99f2e8e2 100644 --- a/src/routes/(app)/[username]/request/[id]/+page.server.js +++ b/src/routes/(app)/[username]/request/[id]/+page.server.js @@ -1,3 +1,19 @@ import { auth, get } from '$lib/utils'; +import { redirect } from '@sveltejs/kit'; -export let load = async ({ cookies, params }) => get(`/request/${params.id}`, auth(cookies)); +export let load = async ({ cookies, depends, locals: { user }, params }) => { + depends('app:invoice'); + if (!user) throw redirect(307, '/login'); + + let { request } = await get(`/request/${params.id}`, auth(cookies)); + let { invoice } = request; + if (invoice) { + let { amount, received, uuid } = invoice; + if ((received && !amount) || received >= amount) throw redirect(307, `/send/${uuid}`); + + if (request.requester.username === user.username) + throw redirect(307, `/send/${request.invoice.uuid}`); + } + + return { request }; +}; diff --git a/src/routes/(app)/[username]/request/[id]/+page.svelte b/src/routes/(app)/[username]/request/[id]/+page.svelte index 74b037d3..0f979284 100644 --- a/src/routes/(app)/[username]/request/[id]/+page.svelte +++ b/src/routes/(app)/[username]/request/[id]/+page.svelte @@ -1,35 +1,46 @@
-
- -
-
-

- Sent invoice to -

-
- -

{request.requester.username}

-
-
-

- {f(fiat, currency)} -

-

{sat(amount)}

-
+ {#if request.recipient_id === user.id} +

+ Sent invoice to +

+
+ +

{request.requester.username}

+
+
+

+ {f(fiat, currency)} +

+

{sat(amount)}

+
+ {:else} +

+ Sent request to +

+
+ +

{request.recipient.username}

+
+ {/if}
diff --git a/src/routes/(app)/[username]/transactions/[...page]/+page.svelte b/src/routes/(app)/[username]/transactions/[...page]/+page.svelte index d316b23c..4d6fbc33 100644 --- a/src/routes/(app)/[username]/transactions/[...page]/+page.svelte +++ b/src/routes/(app)/[username]/transactions/[...page]/+page.svelte @@ -31,8 +31,6 @@ pages = []; $: data && ({ page: p, pages, start, end, total, transactions } = data); - $: console.log($txns.length), ($txns = transactions); - $: $page && ($newPayment = false); $: $newPayment && invalidate(`/users/${user.username}`); diff --git a/src/routes/(app)/invoice/[id]/tip/+page.svelte b/src/routes/(app)/invoice/[id]/tip/+page.svelte index ca0a0437..34393827 100644 --- a/src/routes/(app)/invoice/[id]/tip/+page.svelte +++ b/src/routes/(app)/invoice/[id]/tip/+page.svelte @@ -1,6 +1,7 @@