diff options
Diffstat (limited to 'code/app/src/routes/(main)')
| -rw-r--r-- | code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte b/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte index 2026764..ba59a8f 100644 --- a/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte +++ b/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte @@ -8,7 +8,7 @@ import { PasswordResetService } from "$lib/services/password-reset-service"; export let data: PageServerData; - const service = new PasswordResetService(); + const passwordResets = new PasswordResetService(); const formData = { newPassword: { value: "", @@ -16,15 +16,15 @@ }, }; - let errorState: undefined | "expired" | "404" | "unknown"; let finishedPreliminaryLoading = false; let loading = false; let canSubmit = true; + let requestIsInvalid = false; async function submitFormAsync() { if (!canSubmit) return; loading = true; - const request = await service.fulfill_request_async(data.resetRequestId, formData.newPassword.value); + const request = await passwordResets.fulfill_request_async(data.resetRequestId, formData.newPassword.value); if (request.isFulfilled) { goto("/sign-in?" + signInPageMessageQueryKey + "=" + SignInPageMessage.AFTER_PASSWORD_RESET); } else if (request.knownProblem) { @@ -33,20 +33,8 @@ } onMount(async () => { - errorState = undefined; - const isValidRequest = await service.request_is_valid_async(data.resetRequestId); - if (!isValidRequest.isValid) { - errorState = "unknown"; - canSubmit = false; - } - if (isValidRequest.status === 404) { - errorState = "404"; - canSubmit = false; - } - if (isValidRequest.ok && isValidRequest.data !== true) { - errorState = "expired"; - canSubmit = false; - } + const response = await passwordResets.request_is_valid_async(data.resetRequestId); + requestIsInvalid = !response.isValid; finishedPreliminaryLoading = true; }); </script> @@ -68,29 +56,18 @@ <div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md"> <div class="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10"> <form class="space-y-6" on:submit|preventDefault={submitFormAsync}> - {#if errorState === "404"} - <Alert title={$LL.notFound()} message={$LL.resetPasswordPage.requestNotFound()} /> - {:else if errorState === "expired"} - <Alert - title={$LL.resetPasswordPage.expired()} - message={$LL.resetPasswordPage.requestHasExpired()} - rightLinkHref="/reset-password" - rightLinkText={$LL.resetPasswordPage.requestANewReset()} - /> - {:else if errorState === "unknown"} - <Alert title={$LL.unexpectedError()} message={$LL.tryAgainSoon()} /> + {#if requestIsInvalid} + <Alert title={$LL.resetPasswordPage.invalidRequestTitle()} message={$LL.resetPasswordPage.invalidRequestMessage()} /> {/if} - <Input id="password" name="password" type="password" autocomplete="new-password" required - bind:value={formData.newPassword} + bind:value={formData.newPassword.value} label={$LL.resetPasswordPage.newPassword()} /> - <Button text={$LL.submit()} type="submit" {loading} fullWidth /> </form> </div> |
