aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/routes/(main)/(public)/reset-password/+page.svelte
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-11-25 08:30:33 +0100
committerivarlovlie <git@ivarlovlie.no>2022-11-25 08:30:33 +0100
commitca9c1cdf1ec2988f14ac4ca788edac31153f735f (patch)
tree09a8663520b5c97497bbe7f91176720019c64d3b /code/app/src/routes/(main)/(public)/reset-password/+page.svelte
parentb60a027a4ab9203388470ac51114638983a183da (diff)
downloadgreatoffice-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.svelte26
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 />