diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2022-11-25 08:30:33 +0100 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2022-11-25 08:30:33 +0100 |
| commit | ca9c1cdf1ec2988f14ac4ca788edac31153f735f (patch) | |
| tree | 09a8663520b5c97497bbe7f91176720019c64d3b /code/app/src/routes/(main)/(public)/reset-password/+page.svelte | |
| parent | b60a027a4ab9203388470ac51114638983a183da (diff) | |
| download | greatoffice-ca9c1cdf1ec2988f14ac4ca788edac31153f735f.tar.xz greatoffice-ca9c1cdf1ec2988f14ac4ca788edac31153f735f.zip | |
feat: WIP! Rework http calls into services
Diffstat (limited to 'code/app/src/routes/(main)/(public)/reset-password/+page.svelte')
| -rw-r--r-- | code/app/src/routes/(main)/(public)/reset-password/+page.svelte | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/code/app/src/routes/(main)/(public)/reset-password/+page.svelte b/code/app/src/routes/(main)/(public)/reset-password/+page.svelte index 4d0288f..8bda3dc 100644 --- a/code/app/src/routes/(main)/(public)/reset-password/+page.svelte +++ b/code/app/src/routes/(main)/(public)/reset-password/+page.svelte @@ -1,13 +1,12 @@ <script lang="ts"> import { Alert, Input, Button } from "$lib/components"; - import X from "$lib/components/icons/x.svelte"; import LL from "$lib/i18n/i18n-svelte"; import { PasswordResetService } from "$lib/services/password-reset-service"; const formData = { email: { value: "", - error: "", + errors: [], }, }; @@ -20,27 +19,31 @@ }, }; - const service = new PasswordResetService(); + const resetRequests = new PasswordResetService(); let loading = false; let showSuccessAlert = false; - $: showErrorAlert = formError.title || (formError.subtitle && !showSuccessAlert); + $: showErrorAlert = (formError.title !== "" || formError.subtitle !== "") && !showSuccessAlert; async function submitFormAsync() { formError.set(); showSuccessAlert = false; loading = true; - const response = await service.create_request_async(formData.email.value); + const response = await resetRequests.create_request_async(formData.email.value); loading = false; if (response.isCreated) { showSuccessAlert = true; - return; - } - if (response.knownProblem) { + } else if (response.knownProblem) { if (response.knownProblem.title) formError.title = response.knownProblem.title; if (response.knownProblem.subtitle) formError.subtitle = response.knownProblem.subtitle; - for (const error of response.knownProblem.errors) { + for (const error of Object.entries(response.knownProblem.errors)) { + if (error[0] === "email") { + error[1].forEach(formData.email.errors.push); + } } + } else { + formError.title = $LL.unexpectedError(); + formError.subtitle = $LL.tryAgainSoon(); } } </script> @@ -61,7 +64,7 @@ <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}> - <Alert title={errorData.title} message={errorData.text} type="error" visible={showErrorAlert} /> + <Alert title={formError.title} message={formError.subtitle} type="error" visible={showErrorAlert} /> <Alert type="success" @@ -75,8 +78,9 @@ name="email" type="email" autocomplete="email" + errors={formData.email.errors} required - bind:value={formData.email} + bind:value={formData.email.value} label={$LL.emailAddress()} /> <Button text={$LL.submit()} type="submit" {loading} fullWidth /> |
