From fdef64da149ed0ceae3778238b9882a576e562ef Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 7 Dec 2023 23:36:01 -0800 Subject: verified flow --- src/components/AppHeader.svelte | 5 +---- src/lib/utils.js | 12 ++++++------ src/locales/en.json | 5 ++++- src/routes/(app)/[username]/settings/[...tab]/+page.svelte | 10 +++++++--- .../(app)/[username]/settings/[...tab]/_account.svelte | 2 +- src/routes/(app)/[username]/verify/[code]/+page.server.js | 8 +++++--- 6 files changed, 24 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index 352dcfa7..57892b18 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -150,11 +150,8 @@ {/if} diff --git a/src/lib/utils.js b/src/lib/utils.js index adbe8356..f55b47b6 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -101,8 +101,8 @@ export function reverseFormat(val, locale) { export let protectedRoutes = [/customers/, /settings/, /payments/]; -export let success = (m) => { - toast.pop(); +export let success = (m, clear = true) => { + if (clear) toast.pop(); toast.push(m, { theme: { "--toastBarBackground": "#F5F7FA", @@ -110,16 +110,16 @@ export let success = (m) => { }); }; -export let warning = (m) => { - toast.pop(); +export let warning = (m, clear = true) => { + if (clear) toast.pop(); toast.push(m, { theme: { "--toastBarBackground": "#FFCE22", }, }); }; -export let fail = (m) => { - toast.pop(); +export let fail = (m, clear = true) => { + if (clear) toast.pop(); toast.push(m, { theme: { "--toastBarBackground": "#E93535", diff --git a/src/locales/en.json b/src/locales/en.json index cefabaa3..ac8b0075 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -207,8 +207,11 @@ "nostrKeys": "Nostr key", "nostrDescription": "Your nostr key is used to sign and decrypt messages, keep it safe or someone may be able to impersonate you.", "seedDescription": "This 12 word seed phrase is used to derive your nostr private key and your self-custodial wallet keys which determine your auto-withdrawal addresses. Back it up and don't let anyone see it.", - "emailDescription": "For password resets and notifications", + "emailDescription": "For password resets and payment notifications only", "hideNsec": "Hide nostr secret key", + "saved": "Settings saved!", + "verifying": "Verification email sent", + "verified": "Email verified!", "revealNsec": "Reveal nostr secret key", "hideSeed": "Hide seed phrase", "revealSeed": "Reveal seed phrase", diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index b300b75d..03b68973 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -39,7 +39,7 @@ $: form?.user && ({ user } = form); - $: form?.success && success("Settings saved!"); + $: form?.success && success($t("user.settings.saved"), false); $: form?.message && fail(form.message); @@ -60,6 +60,11 @@ let { address, id, username } = user; let loading; + onMount(() => { + if ($page.url.searchParams.get("verified")) + success($t("user.settings.verified")); + }); + async function handleSubmit() { try { loading = true; @@ -146,8 +151,7 @@ auth(cookies) ); - warning("Verification email sent"); - await sleep(4000); + warning($t("user.settings.verifying"), false); } catch (e) { console.log(e); } diff --git a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte index e96341b4..773485f0 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_account.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_account.svelte @@ -103,7 +103,7 @@ {#if user.verified} - {:else} + {:else if user.email} {/if} diff --git a/src/routes/(app)/[username]/verify/[code]/+page.server.js b/src/routes/(app)/[username]/verify/[code]/+page.server.js index fda11c9e..3ddcd412 100644 --- a/src/routes/(app)/[username]/verify/[code]/+page.server.js +++ b/src/routes/(app)/[username]/verify/[code]/+page.server.js @@ -1,12 +1,14 @@ import { get } from "$lib/utils"; -import { error } from "@sveltejs/kit"; +import { error, redirect } from "@sveltejs/kit"; export let load = async ({ params: { code } }) => { + let user; try { - let user = await get(`/verify/${code}`); - return { user }; + user = await get(`/verify/${code}`); } catch (e) { console.log(e); return { error: "Verification failed" }; } + + throw redirect(307, `/${user.username}/settings/account?verified=true`); }; -- cgit v1.2.3