diff --git a/src/app/components/AppContainer.svelte b/src/app/components/AppContainer.svelte index e7fd818..0a3dec1 100644 --- a/src/app/components/AppContainer.svelte +++ b/src/app/components/AppContainer.svelte @@ -4,15 +4,25 @@ import Landing from "@app/components/Landing.svelte" import Toast from "@app/components/Toast.svelte" import PrimaryNav from "@app/components/PrimaryNav.svelte" - import SignUpConfirm from "@app/components/SignUpConfirm.svelte" + import EmailConfirm from "@app/components/EmailConfirm.svelte" + import PasswordReset from "@app/components/PasswordReset.svelte" import {BURROW_URL} from "@app/state" import {modals, pushModal} from "@app/modal" - if (BURROW_URL && $page.route.id === "/confirm-email") { - pushModal(SignUpConfirm, { - email: $page.url.searchParams.get("email"), - token: $page.url.searchParams.get("token"), - }) + if (BURROW_URL && !$pubkey) { + if ($page.url.pathname === "/confirm-email") { + pushModal(EmailConfirm, { + email: $page.url.searchParams.get("email"), + confirm_token: $page.url.searchParams.get("confirm_token"), + }) + } + + if ($page.url.pathname === "/reset-password") { + pushModal(PasswordReset, { + email: $page.url.searchParams.get("email"), + reset_token: $page.url.searchParams.get("reset_token"), + }) + } } diff --git a/src/app/components/SignUpConfirm.svelte b/src/app/components/EmailConfirm.svelte similarity index 92% rename from src/app/components/SignUpConfirm.svelte rename to src/app/components/EmailConfirm.svelte index b13f4ea..2c37f8b 100644 --- a/src/app/components/SignUpConfirm.svelte +++ b/src/app/components/EmailConfirm.svelte @@ -8,7 +8,7 @@ import {BURROW_URL} from "@app/state" export let email - export let token + export let confirm_token const login = () => { pushModal(LogInPassword, {email}, {path: "/"}) @@ -19,7 +19,7 @@ onMount(async () => { const [res] = await Promise.all([ - postJson(BURROW_URL + "/user/confirm", {email, token}), + postJson(BURROW_URL + "/user/confirm-email", {email, confirm_token}), sleep(2000), ]) diff --git a/src/app/components/LogInPassword.svelte b/src/app/components/LogInPassword.svelte index 75394e2..84cdc4e 100644 --- a/src/app/components/LogInPassword.svelte +++ b/src/app/components/LogInPassword.svelte @@ -2,6 +2,7 @@ import {onMount, onDestroy} from "svelte" import {postJson, stripProtocol} from "@welshman/lib" import {Nip46Broker, makeSecret} from "@welshman/signer" + import {normalizeRelayUrl} from "@welshman/util" import {addSession} from "@welshman/app" import Spinner from "@lib/components/Spinner.svelte" import Button from "@lib/components/Button.svelte" @@ -9,8 +10,9 @@ import Icon from "@lib/components/Icon.svelte" import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import PasswordResetRequest from "@app/components/PasswordResetRequest.svelte" import {loadUserData} from "@app/commands" - import {clearModals} from "@app/modal" + import {clearModals, pushModal} from "@app/modal" import {setChecked} from "@app/notifications" import {pushToast} from "@app/toast" import {NIP46_PERMS, BURROW_URL, PLATFORM_URL, PLATFORM_NAME, PLATFORM_LOGO} from "@app/state" @@ -19,9 +21,11 @@ const clientSecret = makeSecret() + const startReset = () => pushModal(PasswordResetRequest, {email}) + const abortController = new AbortController() - const relays = ["ws://" + stripProtocol(BURROW_URL)] + const relays = [normalizeRelayUrl("ws://" + stripProtocol(BURROW_URL))] const broker = Nip46Broker.get({clientSecret, relays}) @@ -30,10 +34,15 @@ const onSubmit = async () => { loading = true - const res = await postJson(BURROW_URL + "/session", {email, password, nostrconnect: url}) + try { + const res = await postJson(BURROW_URL + "/session", {email, password, nostrconnect: url}) - if (res.error) { - pushToast({message: res.error, theme: "error"}) + if (res.error) { + pushToast({message: res.error, theme: "error"}) + loading = false + } + } catch (e) { + pushToast({message: "Something went wrong, please try again!", theme: "error"}) loading = false } } @@ -91,7 +100,7 @@