From 1f63848ca9fb01336f04b41434de1cc06a5b3d93 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 10 Sep 2024 20:39:47 -0700 Subject: move routes --- src/routes/(app)/+layout.server.ts | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'src/routes/(app)/+layout.server.ts') diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts index 655a9425..a0e30f31 100644 --- a/src/routes/(app)/+layout.server.ts +++ b/src/routes/(app)/+layout.server.ts @@ -1,8 +1,9 @@ -import { redirect } from "@sveltejs/kit"; - import { get, auth, protectedRoutes } from "$lib/utils"; +import { error, redirect } from "@sveltejs/kit"; +import { get, auth, protectedRoutes } from "$lib/utils"; export async function load({ cookies, request, url, params }) { let { pathname } = url; + let { username } = params; let token = cookies.get("token"); let rate, rates = { USD: 1 }; @@ -14,6 +15,18 @@ export async function load({ cookies, request, url, params }) { } catch (e) {} } + let subject; + if (username) { + try { + subject = await get(`/users/${username}`); + } catch (e) { + error(500, "Unable to retrieve user account data"); + } + } + + if (!subject) subject = user; + if (!user) user = subject; + if (user?.needsMigration) { redirect(307, `/migrate`); } @@ -26,10 +39,7 @@ export async function load({ cookies, request, url, params }) { redirect(307, `/${user.username}`); } - if ( - protectedRoutes.find((p) => pathname.match(p)) && - (!user || user.username !== params.username) - ) { + if ( protectedRoutes.find((p) => pathname.match(p)) && (!user)) { redirect(307, "/login"); } @@ -44,5 +54,5 @@ export async function load({ cookies, request, url, params }) { console.log(e); } - return { user, token, rate, rates }; + return { user, token, rate, rates, subject }; } -- cgit v1.2.3 From 6890311faca2bed1b8d22dbd88b8925f382eedd2 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 13 Sep 2024 23:18:58 -0700 Subject: fix some redirects --- src/components/Account.svelte | 3 +++ src/components/Items.svelte | 4 +--- src/routes/(app)/+layout.server.ts | 1 + src/routes/(app)/[username]/(profile)/+page.server.ts | 1 + src/routes/(app)/[username]/(profile)/+page.svelte | 14 +++++++------- src/routes/(app)/invoice/[id]/paid/+page.svelte | 2 +- .../bitcoin/[address]/[amount]/[...feeRate]/+page.svelte | 12 ++++++++++-- src/routes/(app)/sent/+page.svelte | 2 +- 8 files changed, 25 insertions(+), 14 deletions(-) (limited to 'src/routes/(app)/+layout.server.ts') diff --git a/src/components/Account.svelte b/src/components/Account.svelte index f83068b5..ab24f56a 100644 --- a/src/components/Account.svelte +++ b/src/components/Account.svelte @@ -8,6 +8,9 @@ let { seed, balance, id } = account; $: type = seed ? "Savings" : "Cash"; + $: refresh(account); + let refresh = (a) => ({ seed, balance, id } = a) + let setAccount = () => document.cookie = `account=${id}; path=/; max-age=86400`; diff --git a/src/components/Items.svelte b/src/components/Items.svelte index f991e114..47966d8e 100644 --- a/src/components/Items.svelte +++ b/src/components/Items.svelte @@ -15,7 +15,7 @@ import DeleteItem from "$comp/DeleteItem.svelte"; import Icon from "$comp/Icon.svelte"; - export let subject, user, items, rate, currency; + export let subject, user, items, rate, currency, total; let flipDurationMs = 200; let dropTargetStyle = {}; @@ -28,8 +28,6 @@ deleting = item; }; - $: total = items.reduce((a, b) => a + b.price * b.quantity, 0); - function handleConsider(e) { const { items: newItems, diff --git a/src/routes/(app)/+layout.server.ts b/src/routes/(app)/+layout.server.ts index a0e30f31..e4105fb8 100644 --- a/src/routes/(app)/+layout.server.ts +++ b/src/routes/(app)/+layout.server.ts @@ -44,6 +44,7 @@ export async function load({ cookies, request, url, params }) { } if (user && !user.pubkey && !pathname.includes("generate")) { + console.log("user missing pubkey", user) redirect(303, `/${user.username}/generate`); } diff --git a/src/routes/(app)/[username]/(profile)/+page.server.ts b/src/routes/(app)/[username]/(profile)/+page.server.ts index 9c9be68a..ed4ee58c 100644 --- a/src/routes/(app)/[username]/(profile)/+page.server.ts +++ b/src/routes/(app)/[username]/(profile)/+page.server.ts @@ -1,6 +1,7 @@ import { auth, get } from "$lib/utils"; export async function load({ cookies, depends, parent }) { + depends("app:payments"); depends("app:items"); let { subject } = await parent(); diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index 98b77fc9..03fbc454 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -14,7 +14,7 @@ $: rate = rates[currency]; $: total = items.reduce((a, b) => a + b.price * b.quantity, 0); - let refresh = (d) => ({ items, subject, user, rates } = d); + let refresh = (d) => ({ accounts, items, subject, user, rates } = d); $: refresh(data); let install = async () => { @@ -41,16 +41,16 @@ {/each}
- + + {#if $installPrompt} + +
diff --git a/src/routes/(app)/account/savings/+page.svelte b/src/routes/(app)/account/savings/+page.svelte new file mode 100644 index 00000000..8d52f997 --- /dev/null +++ b/src/routes/(app)/account/savings/+page.svelte @@ -0,0 +1,31 @@ + + + diff --git a/src/routes/(app)/account/seed/+page.svelte b/src/routes/(app)/account/seed/+page.svelte new file mode 100644 index 00000000..9c19e820 --- /dev/null +++ b/src/routes/(app)/account/seed/+page.svelte @@ -0,0 +1,85 @@ + + +
+

Seed phrase

+ +
+ {#if $mnemonic} +
+ {#each $mnemonic.split(" ") as w, i} +
+ {i + 1}. + {@html w === "-" ? "—" : w} +
+ {/each} +
+ {/if} + +
+ + + +
+ + +
+
diff --git a/src/routes/(app)/account/self/+page.svelte b/src/routes/(app)/account/self/+page.svelte deleted file mode 100644 index 833def87..00000000 --- a/src/routes/(app)/account/self/+page.svelte +++ /dev/null @@ -1,59 +0,0 @@ - - -
-

Account setup

-

Step 1

- -
-

- Whoever knows these words in the correct order can withdraw funds from the account. We can't - recover them if you lose them. -

- - {#if reveal} -
- {$mnemonic} -
- -
- - - -
- {:else} -
- -
- {/if} -
-
diff --git a/src/routes/(app)/account/setup/+page.svelte b/src/routes/(app)/account/setup/+page.svelte index f19c4c96..8304c5ed 100644 --- a/src/routes/(app)/account/setup/+page.svelte +++ b/src/routes/(app)/account/setup/+page.svelte @@ -6,26 +6,29 @@

Choose account type

- - diff --git a/src/routes/(app)/account/setup/step2/+page.svelte b/src/routes/(app)/account/setup/step2/+page.svelte deleted file mode 100644 index 221e545e..00000000 --- a/src/routes/(app)/account/setup/step2/+page.svelte +++ /dev/null @@ -1,68 +0,0 @@ - - -
-
-

Account setup

-

Step 2

-
- -
-

- Add an additional password to your seed phrase. It should be different - than your login password. We can't reset it if you lose it. -

- - - - -
-
-- cgit v1.2.3