From 479cb9ad44d05b56cd2e60735687702fc37487a0 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 7 Feb 2025 22:23:00 -0800 Subject: nwc connections --- src/routes/(app)/apps/[pubkey]/+page.server.ts | 26 ++++ src/routes/(app)/apps/[pubkey]/+page.svelte | 19 +++ src/routes/(app)/apps/new/+page.server.ts | 31 +++++ src/routes/(app)/apps/new/+page.svelte | 19 +++ src/routes/(app)/qr/[text]/+page.server.ts | 3 +- src/routes/(app)/settings/nostr/+page.server.ts | 7 +- src/routes/(app)/settings/nostr/+page.svelte | 151 ++++++++++++++++++------ 7 files changed, 219 insertions(+), 37 deletions(-) create mode 100644 src/routes/(app)/apps/[pubkey]/+page.server.ts create mode 100644 src/routes/(app)/apps/[pubkey]/+page.svelte create mode 100644 src/routes/(app)/apps/new/+page.server.ts create mode 100644 src/routes/(app)/apps/new/+page.svelte (limited to 'src/routes') diff --git a/src/routes/(app)/apps/[pubkey]/+page.server.ts b/src/routes/(app)/apps/[pubkey]/+page.server.ts new file mode 100644 index 00000000..a2cc50e7 --- /dev/null +++ b/src/routes/(app)/apps/[pubkey]/+page.server.ts @@ -0,0 +1,26 @@ +import getRates from "$lib/rates"; +import { auth, fd, get, post } from "$lib/utils"; +import { fail, redirect } from "@sveltejs/kit"; + +export const load = async ({ cookies, params, parent }) => { + const { pubkey } = params; + const { user } = await parent(); + const rates = await getRates(); + const rate = rates[user.currency]; + const app = await get(`/app/${pubkey}`, auth(cookies)); + return { app, rate }; +}; + +export const actions = { + default: async ({ cookies, request }) => { + try { + const body = await fd(request); + await post("/app", body, auth(cookies)); + } catch (e) { + const { message: error } = e as Error; + return fail(400, { error }); + } + + redirect(307, "/settings/nostr"); + }, +}; diff --git a/src/routes/(app)/apps/[pubkey]/+page.svelte b/src/routes/(app)/apps/[pubkey]/+page.svelte new file mode 100644 index 00000000..d1a5f2bd --- /dev/null +++ b/src/routes/(app)/apps/[pubkey]/+page.svelte @@ -0,0 +1,19 @@ + + +
+

{$t("accounts.connection")}

+ + {#if form?.error} +
+ {form.error} +
+ {/if} + + +
diff --git a/src/routes/(app)/apps/new/+page.server.ts b/src/routes/(app)/apps/new/+page.server.ts new file mode 100644 index 00000000..7c335f8c --- /dev/null +++ b/src/routes/(app)/apps/new/+page.server.ts @@ -0,0 +1,31 @@ +import getRates from "$lib/rates"; +import { auth, fd, post } from "$lib/utils"; +import { fail, redirect } from "@sveltejs/kit"; + +export const load = async ({ parent, url }) => { + const app = { + name: url.searchParams.get("name"), + pubkey: url.searchParams.get("pubkey"), + max_amount: url.searchParams.get("max_amount"), + budget_renewal: url.searchParams.get("budget_renewal"), + }; + + const { user } = await parent(); + const rates = await getRates(); + const rate = rates[user.currency]; + return { app, rate }; +}; + +export const actions = { + default: async ({ cookies, request }) => { + try { + const body = await fd(request); + await post("/app", body, auth(cookies)); + } catch (e) { + const { message: error } = e as Error; + return fail(400, { error }); + } + + redirect(307, "/settings/nostr"); + }, +}; diff --git a/src/routes/(app)/apps/new/+page.svelte b/src/routes/(app)/apps/new/+page.svelte new file mode 100644 index 00000000..d1a5f2bd --- /dev/null +++ b/src/routes/(app)/apps/new/+page.svelte @@ -0,0 +1,19 @@ + + +
+

{$t("accounts.connection")}

+ + {#if form?.error} +
+ {form.error} +
+ {/if} + + +
diff --git a/src/routes/(app)/qr/[text]/+page.server.ts b/src/routes/(app)/qr/[text]/+page.server.ts index 5a9debb3..210c3c45 100644 --- a/src/routes/(app)/qr/[text]/+page.server.ts +++ b/src/routes/(app)/qr/[text]/+page.server.ts @@ -1,3 +1,4 @@ export async function load({ params }) { - return params; + const { text } = params; + return { text }; } diff --git a/src/routes/(app)/settings/nostr/+page.server.ts b/src/routes/(app)/settings/nostr/+page.server.ts index b4bb124b..1767ebaf 100644 --- a/src/routes/(app)/settings/nostr/+page.server.ts +++ b/src/routes/(app)/settings/nostr/+page.server.ts @@ -1,9 +1,10 @@ -import { get } from "$lib/utils"; import updateUser from "$lib/settings"; +import { auth, get } from "$lib/utils"; -export const load = async () => { +export const load = async ({ cookies }) => { const { challenge } = await get("/challenge"); - return { challenge }; + const apps = await get("/apps", auth(cookies)); + return { apps, challenge }; }; export const actions = { diff --git a/src/routes/(app)/settings/nostr/+page.svelte b/src/routes/(app)/settings/nostr/+page.svelte index 20c18c6f..6b4c2f12 100644 --- a/src/routes/(app)/settings/nostr/+page.svelte +++ b/src/routes/(app)/settings/nostr/+page.svelte @@ -1,10 +1,11 @@ -
- - - + + -

+

+

+ {$t("user.settings.nwc")} +

+

{$t("user.settings.nwcDescription")}

- @@ -93,13 +171,21 @@
{$t("user.nostrPubkey")}
- +
- - + @@ -108,8 +194,7 @@ {#if extensionAvailable} {/if} -- cgit v1.2.3