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)/settings/[...tab]/+page.server.ts | 34 +++ src/routes/(app)/settings/[...tab]/+page.svelte | 257 +++++++++++++++++ src/routes/(app)/settings/[...tab]/_account.svelte | 190 ++++++++++++ src/routes/(app)/settings/[...tab]/_pos.svelte | 238 +++++++++++++++ .../(app)/settings/[...tab]/_security.svelte | 321 +++++++++++++++++++++ src/routes/(app)/settings/[...tab]/_shopify.svelte | 92 ++++++ 6 files changed, 1132 insertions(+) create mode 100644 src/routes/(app)/settings/[...tab]/+page.server.ts create mode 100644 src/routes/(app)/settings/[...tab]/+page.svelte create mode 100644 src/routes/(app)/settings/[...tab]/_account.svelte create mode 100644 src/routes/(app)/settings/[...tab]/_pos.svelte create mode 100644 src/routes/(app)/settings/[...tab]/_security.svelte create mode 100644 src/routes/(app)/settings/[...tab]/_shopify.svelte (limited to 'src/routes/(app)/settings') diff --git a/src/routes/(app)/settings/[...tab]/+page.server.ts b/src/routes/(app)/settings/[...tab]/+page.server.ts new file mode 100644 index 00000000..42639b38 --- /dev/null +++ b/src/routes/(app)/settings/[...tab]/+page.server.ts @@ -0,0 +1,34 @@ +import { fail, redirect } from "@sveltejs/kit"; +import { fd, auth, get, post } from "$lib/utils"; + +export function load({ cookies, params, url }) { + if (url.pathname.endsWith("settings")) + redirect(307, url.pathname + "/account"); + params.cookies = cookies.getAll(); + return { cookies: cookies.getAll(), tab: params.tab }; +} + +export const actions = { + default: async ({ cookies, request }) => { + let form = await fd(request); + + if (form.tab === "pos") { + form.notify = form.notify === "on"; + form.nip5 = form.nip5 === "on"; + form.prompt = form.prompt === "on"; + form.autowithdraw = form.autowithdraw === "on"; + } + + let user = { ...(await get("/me", auth(cookies))), ...form }; + + try { + ({ user } = await post(`/user`, user, auth(cookies))); + } catch (e: any) { + return fail(400, { message: e.message }); + } + + if (user.language) cookies.set("lang", user.language, { path: "/" }); + + return { user, success: true }; + }, +}; diff --git a/src/routes/(app)/settings/[...tab]/+page.svelte b/src/routes/(app)/settings/[...tab]/+page.svelte new file mode 100644 index 00000000..c495a5cc --- /dev/null +++ b/src/routes/(app)/settings/[...tab]/+page.svelte @@ -0,0 +1,257 @@ + + +{#if user.haspin && $pin?.length !== 6} + +{/if} + +
+ + + +
+
+

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

+ +
+ {#each tabs.filter((t) => t.name !== "shopify") as { name, key }} + + + + {/each} +
+
+ + +
+ +
+ +
+
+ + diff --git a/src/routes/(app)/settings/[...tab]/_account.svelte b/src/routes/(app)/settings/[...tab]/_account.svelte new file mode 100644 index 00000000..8e3323c7 --- /dev/null +++ b/src/routes/(app)/settings/[...tab]/_account.svelte @@ -0,0 +1,190 @@ + + +
+ +
+ +
+
+ +
+ + +
+ +
+ +

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

+ +
+ + {#if user.verified} + + {:else if user.email} + + {/if} +
+
+ +
+ {$t("user.settings.profileImage")} + +
+ {#if $avatar || user.profile} +
+ {user.username} +
+ {:else} +
+ +
+ {/if} +
+ + + handleFile(e, "profile")} + /> +
+
+ + {#if tooLarge["avatar"]} +
Max file size 10MB
+ {/if} +
+ +
+
+ {$t("user.settings.bannerImage")} +
+ + {#if $banner || user.banner} + Banner + {:else} +
+ {/if} + + + handleFile(e, "banner")} + /> + + {#if tooLarge["banner"]} +
Max file size 10MB
+ {/if} +
+ +
+ + +
+ +
+ +

+ Coinos can automatically mark orders as Paid if you provide an API token. + +

+

+ Create a new app in Apps > App Development +

+ +

+ Edit the Admin API scopes to enable write_orders permission then install the app into your store and copy the Admin API access + token here. +

+
+ + -- cgit v1.2.3