From 9764d0f0989ea25a502572453ee4f992079f520f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sat, 12 Nov 2022 01:40:54 -0800 Subject: persist requests --- src/components/Request.svelte | 7 +- src/lib/invoice.js | 6 +- src/lib/store.js | 1 + src/routes/(app)/[username]/+page.svelte | 56 +++++++-------- .../(app)/[username]/dashboard/+page.server.js | 3 + src/routes/(app)/[username]/dashboard/+page.svelte | 62 ++++++++++++++++- .../receive/[...network]/+page.server.js | 5 -- .../[username]/receive/[...network]/+page.svelte | 79 --------------------- .../[username]/receive/[...param]/+page.server.js | 15 ++++ .../[username]/receive/[...param]/+page.svelte | 49 +++++++++++++ .../(app)/[username]/request/[id]/+page.server.js | 3 + .../(app)/[username]/request/[id]/+page.svelte | 38 ++++++++++ src/routes/(app)/send/[...text]/+page.svelte | 81 ++++++++++++---------- 13 files changed, 250 insertions(+), 155 deletions(-) create mode 100644 src/routes/(app)/[username]/dashboard/+page.server.js delete mode 100644 src/routes/(app)/[username]/receive/[...network]/+page.server.js delete mode 100644 src/routes/(app)/[username]/receive/[...network]/+page.svelte create mode 100644 src/routes/(app)/[username]/receive/[...param]/+page.server.js create mode 100644 src/routes/(app)/[username]/receive/[...param]/+page.svelte create mode 100644 src/routes/(app)/[username]/request/[id]/+page.server.js create mode 100644 src/routes/(app)/[username]/request/[id]/+page.svelte (limited to 'src') diff --git a/src/components/Request.svelte b/src/components/Request.svelte index e1071272..2f05dc75 100644 --- a/src/components/Request.svelte +++ b/src/components/Request.svelte @@ -1,9 +1,12 @@ {#if $request} @@ -19,7 +22,7 @@ {/if}
- + diff --git a/src/lib/invoice.js b/src/lib/invoice.js index 5b538178..6ec7d41b 100644 --- a/src/lib/invoice.js +++ b/src/lib/invoice.js @@ -6,7 +6,7 @@ export default async ({ cookies, request }) => { let rates = await get('/rates'); let amount = parseInt(form.get('amount')); - let requester = form.get('requester'); + let request_id = form.get('request_id'); let invoice = { amount, @@ -14,14 +14,14 @@ export default async ({ cookies, request }) => { network: form.get('network'), prompt: form.get('prompt') === 'true', rate: parseFloat(form.get('rate')) || rates[form.get('currency')], - requester + request_id }; let user = { username: form.get('username') }; let { uuid } = await post('/invoice', { invoice, user }, auth(cookies)); - if (requester) return { amount }; + if (request_id) throw redirect(307, `/${user.username}/request/${request_id}`); if (invoice.prompt) { throw redirect(307, `/invoice/${uuid}/tip`); diff --git a/src/lib/store.js b/src/lib/store.js index 3105419c..a273b756 100644 --- a/src/lib/store.js +++ b/src/lib/store.js @@ -31,6 +31,7 @@ const persistLocal = (key, defaultValue) => { return s; }; +export const requestRedirect = writable(); export const loginRedirect = writable(); export const rate = writable(); export const user = writable(); diff --git a/src/routes/(app)/[username]/+page.svelte b/src/routes/(app)/[username]/+page.svelte index c865a081..35606958 100644 --- a/src/routes/(app)/[username]/+page.svelte +++ b/src/routes/(app)/[username]/+page.svelte @@ -18,42 +18,42 @@ {subject.address && subject.address !== 'null' ? subject.address : ''}
-
- +
+ + + + {#if user?.username !== subject.username} - - {#if user?.username !== subject.username} - - {/if} -
+ {/if} +
diff --git a/src/routes/(app)/[username]/dashboard/+page.server.js b/src/routes/(app)/[username]/dashboard/+page.server.js new file mode 100644 index 00000000..b283bc9d --- /dev/null +++ b/src/routes/(app)/[username]/dashboard/+page.server.js @@ -0,0 +1,3 @@ +import { auth, get } from '$lib/utils'; + +export let load = async ({ cookies }) => get('/requests', auth(cookies)); diff --git a/src/routes/(app)/[username]/dashboard/+page.svelte b/src/routes/(app)/[username]/dashboard/+page.svelte index d1bd86b7..3cba081d 100644 --- a/src/routes/(app)/[username]/dashboard/+page.svelte +++ b/src/routes/(app)/[username]/dashboard/+page.svelte @@ -1,12 +1,13 @@ - -{#if form && req} -
-
-

- Invoice sent to -

- -
- -

{req.requester.username}

-
-
- -
-{:else} -
- - - - - - {#if req} - - {/if} - - - -
- - -
-
-{/if} diff --git a/src/routes/(app)/[username]/receive/[...param]/+page.server.js b/src/routes/(app)/[username]/receive/[...param]/+page.server.js new file mode 100644 index 00000000..1e57aa67 --- /dev/null +++ b/src/routes/(app)/[username]/receive/[...param]/+page.server.js @@ -0,0 +1,15 @@ +import { auth, get } from '$lib/utils'; +import invoice from '$lib/invoice'; + +export let load = async ({ cookies, params }) => { + let id = parseInt(params.param); + + let request; + if (id) ({ request } = await get(`/request/${id}`, auth(cookies))); + + return { ...params, request }; +}; + +export const actions = { + default: invoice +}; diff --git a/src/routes/(app)/[username]/receive/[...param]/+page.svelte b/src/routes/(app)/[username]/receive/[...param]/+page.svelte new file mode 100644 index 00000000..cb69b06a --- /dev/null +++ b/src/routes/(app)/[username]/receive/[...param]/+page.svelte @@ -0,0 +1,49 @@ + + +
+ + + + + + {#if request} + + {/if} + + + +
+ + +
+
diff --git a/src/routes/(app)/[username]/request/[id]/+page.server.js b/src/routes/(app)/[username]/request/[id]/+page.server.js new file mode 100644 index 00000000..79db5d42 --- /dev/null +++ b/src/routes/(app)/[username]/request/[id]/+page.server.js @@ -0,0 +1,3 @@ +import { auth, get } from '$lib/utils'; + +export let load = async ({ cookies, params }) => get(`/request/${params.id}`, auth(cookies)); diff --git a/src/routes/(app)/[username]/request/[id]/+page.svelte b/src/routes/(app)/[username]/request/[id]/+page.svelte new file mode 100644 index 00000000..74b037d3 --- /dev/null +++ b/src/routes/(app)/[username]/request/[id]/+page.svelte @@ -0,0 +1,38 @@ + + +
+
+ +
+ +
+

+ Sent invoice to +

+
+ +

{request.requester.username}

+
+
+

+ {f(fiat, currency)} +

+

{sat(amount)}

+
+
+
+ + +
+ diff --git a/src/routes/(app)/send/[...text]/+page.svelte b/src/routes/(app)/send/[...text]/+page.svelte index 39f1f530..09b9cb21 100644 --- a/src/routes/(app)/send/[...text]/+page.svelte +++ b/src/routes/(app)/send/[...text]/+page.svelte @@ -1,30 +1,30 @@ - + let paste = async () => { + text = await navigator.clipboard.readText(); + }; + @@ -91,24 +91,31 @@
{#each contacts as c}