diff options
Diffstat (limited to 'src')
4 files changed, 67 insertions, 6 deletions
diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index b7a9ccfb..d0ee7eba 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -8,7 +8,7 @@ import Spinner from "$comp/Spinner.svelte"; import Pin from "$comp/Pin.svelte"; import { t } from "$lib/translations"; - import { fail, post, warning, success } from "$lib/utils"; + import { fail, post, sleep, warning, success } from "$lib/utils"; import { avatar, banner, password, pin } from "$lib/store"; import { upload } from "$lib/upload"; import { page } from "$app/stores"; @@ -128,13 +128,19 @@ await sign({ event, user }); await send(event); } catch (e) { - warning("nostr profile could not be updated"); + warning("Nostr profile could not be updated"); } } if (user.email !== prev.email) { - await post("/api/verify", { test: true }); - } + try { + await post("/api/request", user); + warning("Verification email sent"); + await sleep(4000); + } catch(e) { + console.log(e); + } + } const response = await fetch(formElement.action, { method: "POST", diff --git a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte index cbf31a68..ed9f1ac4 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_pos.svelte @@ -33,12 +33,20 @@ </select> </div> -<div class="space-y-1"> +<div class="space-y-1 relative"> <label for="email" class="font-bold block">{$t("user.settings.email")}</label> <p class="text-secondary"> {$t("user.settings.emailDescription")} </p> - <input type="text" name="email" bind:value={user.email} /> + + <div class="relative"> + <input type="text" name="email" bind:value={user.email} /> + {#if user.verified} + <Icon icon="check" style="absolute right-5 top-3 w-8" /> + {:else} + <Icon icon="orangeclock" style="absolute right-5 top-3 w-8" /> + {/if} + </div> </div> <div> diff --git a/src/routes/(app)/[username]/verify/[code]/+page.server.js b/src/routes/(app)/[username]/verify/[code]/+page.server.js new file mode 100644 index 00000000..b777b2b8 --- /dev/null +++ b/src/routes/(app)/[username]/verify/[code]/+page.server.js @@ -0,0 +1,13 @@ +import { get } from "$lib/utils"; +import { error } from "@sveltejs/kit"; + +export let load = async ({ params: { code } }) => { + try { + console.log("CODE", code); + let user = await get(`/verify/${code}`); + return { user }; + } catch (e) { + console.log(e); + return { error: "Verification failed" }; + } +}; diff --git a/src/routes/(app)/[username]/verify/[code]/+page.svelte b/src/routes/(app)/[username]/verify/[code]/+page.svelte new file mode 100644 index 00000000..e9baec8a --- /dev/null +++ b/src/routes/(app)/[username]/verify/[code]/+page.svelte @@ -0,0 +1,34 @@ +<script> + import Icon from "$comp/Icon.svelte"; + import { t } from "$lib/translations"; + + export let data; + let { user, error } = data; +</script> + +<div class="container px-4 text-center mx-auto"> + {#if error} + <h1 class="text-3xl md:text-4xl font-bold mb-6"> + Email verification failed + </h1> + {:else if user.verified} + <div + class="flex w-full py-5 max-w-[200px] mx-auto" + in:scale={{ start: 0.5 }} + > + <Icon icon="check" style="mx-auto" /> + </div> + + <h1 class="text-3xl md:text-4xl font-bold mb-6"> + Email verified successfully! + </h1> + {/if} +</div> + +<a href={`/${user.username}`}> + <div class="opacity-0 w-screen h-screen fixed top-0 left-0 z-50" /> +</a> + +<div class="fixed bottom-10 w-full text-center"> + {$t("payments.tapAnywhere")} +</div> |
