aboutsummaryrefslogtreecommitdiffstats
path: root/apps/kit/src/routes/(main)/(public)/reset-password
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-10-05 14:45:21 +0200
committerivarlovlie <git@ivarlovlie.no>2022-10-05 14:45:21 +0200
commitb7e39b59fd0fc7b5610ebff29035bf622079e0d8 (patch)
tree64be84ebbdac9f7ceced983390c53b10d575af5c /apps/kit/src/routes/(main)/(public)/reset-password
parent2001c035fbb417ab0a3d42cfb04d17420bde4086 (diff)
downloadgreatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.tar.xz
greatoffice-b7e39b59fd0fc7b5610ebff29035bf622079e0d8.zip
refactor: Change file structure
Diffstat (limited to 'apps/kit/src/routes/(main)/(public)/reset-password')
-rw-r--r--apps/kit/src/routes/(main)/(public)/reset-password/+page.svelte82
-rw-r--r--apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.server.ts11
-rw-r--r--apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.svelte132
3 files changed, 0 insertions, 225 deletions
diff --git a/apps/kit/src/routes/(main)/(public)/reset-password/+page.svelte b/apps/kit/src/routes/(main)/(public)/reset-password/+page.svelte
deleted file mode 100644
index aa26892..0000000
--- a/apps/kit/src/routes/(main)/(public)/reset-password/+page.svelte
+++ /dev/null
@@ -1,82 +0,0 @@
-<script lang="ts">
- import { create_forgot_password_request } from "$lib/api/user";
- import { Alert, Input, Button } from "$lib/components";
- import LL from "$lib/i18n/i18n-svelte";
- import type { ErrorResult } from "$lib/models/ErrorResult";
-
- const formData = {
- email: "",
- };
-
- $: showErrorAlert =
- (errorData?.text.length ?? 0 + errorData?.title.length ?? 0) > 0 &&
- !showSuccessAlert;
-
- const errorData = {
- text: "",
- title: "",
- } as ErrorResult;
-
- let loading = false;
- let showSuccessAlert = false;
-
- async function submitFormAsync() {
- errorData.text = "";
- errorData.title = "";
- showSuccessAlert = false;
- loading = true;
- const request = await create_forgot_password_request(formData.email);
- loading = false;
- if (!request.ok) {
- errorData.text = request.data.text ?? $LL.tryAgainSoon();
- errorData.title = request.data.title ?? $LL.unexpectedError();
- return;
- }
- showSuccessAlert = true;
- }
-</script>
-
-<div class="min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8">
- <div class="sm:mx-auto sm:w-full p-2 sm:p-0 sm:max-w-md">
- <h2 class="mt-6 text-3xl tracking-tight font-bold text-gray-900">
- {$LL.resetPasswordPage.requestAPasswordReset()}
- </h2>
- <p class="mt-2 text-sm text-gray-600">
- {$LL.or().toLowerCase()}
- <a href="/sign-in" class="link">
- {$LL.signIntoYourAccount().toLowerCase()}
- </a>
- </p>
- </div>
-
- <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
- type="success"
- title={$LL.success()}
- message={$LL.resetPasswordPage.requestSentMessage()}
- visible={showSuccessAlert}
- />
-
- <Input
- id="email"
- name="email"
- type="email"
- autocomplete="email"
- required
- bind:value={formData.email}
- label={$LL.emailAddress()}
- />
- <Button text={$LL.submit()} type="submit" {loading} fullWidth />
- </form>
- </div>
- </div>
-</div>
diff --git a/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.server.ts b/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.server.ts
deleted file mode 100644
index 389d04c..0000000
--- a/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.server.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { is_guid } from '$lib/helpers';
-import { redirect } from '@sveltejs/kit';
-import type { PageServerLoad } from './$types';
-
-export const load: PageServerLoad = async ({ params }) => {
- const resetRequestId = params.id ?? "";
- if (!is_guid(resetRequestId)) throw redirect(302, "/reset-password");
- return {
- resetRequestId
- };
-}; \ No newline at end of file
diff --git a/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.svelte b/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.svelte
deleted file mode 100644
index 562d902..0000000
--- a/apps/kit/src/routes/(main)/(public)/reset-password/[id]/+page.svelte
+++ /dev/null
@@ -1,132 +0,0 @@
-<script lang="ts">
- import {
- check_forgot_password_request,
- fulfill_forgot_password_request,
- } from "$lib/api/user";
- import { onMount } from "svelte";
- import LL from "$lib/i18n/i18n-svelte";
- import { Alert, Input, Button } from "$lib/components";
- import type { PageServerData } from "./$types";
- import type { ErrorResult } from "$lib/models/ErrorResult";
- import { goto } from "$app/navigation";
- import { Message, messageQueryKey } from "../../sign-in/+page.svelte";
-
- export let data: PageServerData;
-
- const formData = {
- newPassword: "",
- };
-
- const errorData = {
- text: "",
- title: "",
- } as ErrorResult;
-
- let errorState: undefined | "expired" | "404" | "unknown";
-
- let finishedPreliminaryLoading = false;
- let loading = false;
- let canSubmit = true;
-
- async function submitFormAsync() {
- if (!canSubmit) return;
- loading = true;
- const request = await fulfill_forgot_password_request(
- data.resetRequestId,
- formData.newPassword
- );
- if (request.ok) {
- goto(
- "/sign-in?" +
- messageQueryKey +
- "=" +
- Message.AFTER_PASSWORD_RESET
- );
- }
-
- loading = false;
- }
-
- onMount(async () => {
- errorState = undefined;
- const isValidRequest = await check_forgot_password_request(
- data.resetRequestId
- );
- if (!isValidRequest.ok && isValidRequest.status !== 404) {
- errorState = "unknown";
- canSubmit = false;
- }
- if (isValidRequest.status === 404) {
- errorState = "404";
- canSubmit = false;
- }
- if (isValidRequest.ok && isValidRequest.data !== true) {
- errorState = "expired";
- canSubmit = false;
- }
- finishedPreliminaryLoading = true;
- });
-</script>
-
-<div class="min-h-full flex flex-col justify-center py-12 sm:px-6 lg:px-8">
- {#if finishedPreliminaryLoading}
- <div class="sm:mx-auto sm:w-full p-2 sm:p-0 sm:max-w-md">
- <h2 class="mt-6 text-3xl tracking-tight font-bold text-gray-900">
- {$LL.resetPasswordPage.setANewPassword()}
- </h2>
- <p class="mt-2 text-sm text-gray-600">
- {$LL.or().toLowerCase()}
- <a href="/sign-in" class="link">
- {$LL.signIntoYourAccount().toLowerCase()}
- </a>
- </p>
- </div>
-
- <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}
-
- <Input
- id="password"
- name="password"
- type="password"
- autocomplete="new-password"
- required
- bind:value={formData.newPassword}
- label={$LL.resetPasswordPage.newPassword()}
- />
-
- <Button
- text={$LL.submit()}
- type="submit"
- {loading}
- fullWidth
- />
- </form>
- </div>
- </div>
- {:else}
- <p>Checking your request...</p>
- {/if}
-</div>