Files
archtika/web-app/src/routes/(anonymous)/login/+page.svelte

41 lines
950 B
Svelte
Raw Normal View History

<script lang="ts">
import { enhance } from "$app/forms";
import SuccessOrError from "$lib/components/SuccessOrError.svelte";
import type { ActionData } from "./$types";
import LoadingSpinner from "$lib/components/LoadingSpinner.svelte";
2024-08-20 19:17:05 +02:00
const { form }: { form: ActionData } = $props();
let sending = $state(false);
let loadingDelay: number;
</script>
<SuccessOrError success={form?.success} message={form?.message} />
{#if sending}
<LoadingSpinner />
{/if}
<form
method="POST"
use:enhance={() => {
loadingDelay = window.setTimeout(() => (sending = true), 500);
return async ({ update }) => {
await update();
window.clearTimeout(loadingDelay);
sending = false;
};
}}
>
<label>
2024-08-01 18:09:35 +02:00
Username:
<input type="text" name="username" required />
</label>
<label>
2024-08-01 18:09:35 +02:00
Password:
<input type="password" name="password" required />
</label>
<button type="submit">Submit</button>
</form>