Added error messages

This commit is contained in:
Patrick 2025-09-20 17:28:28 +02:00
parent 8de9738d85
commit 2feb97ddfe
2 changed files with 38 additions and 1 deletions

View File

@ -1,5 +1,8 @@
import { RegisterResponseCause } from "$lib/errors";
import type { Actions } from "./$types"; import type { Actions } from "./$types";
import { fail } from "@sveltejs/kit"
export const actions = { export const actions = {
register: async ({ request, fetch }) => { register: async ({ request, fetch }) => {
@ -10,7 +13,25 @@ export const actions = {
body: await request.formData() body: await request.formData()
}) })
console.log(result) const result_body = await result.json()
if (!result.ok) {
if (!result_body.cause) {
return fail(500, { message: "Interner Fehler, versuche es erneut." })
}
switch (result_body.cause) {
case RegisterResponseCause.MalformedRequest: return fail(400, { message: "Bitte versuche es erneut." })
case RegisterResponseCause.EmailLength: return fail(400, { message: "Bitte gib eine Email ein." })
case RegisterResponseCause.EmailFormat: return fail(400, { message: "Das Format der Email ist nicht gültig." })
case RegisterResponseCause.EmailDuplicate: return fail(409, { message: "Email wird bereits verwendet." })
case RegisterResponseCause.DisplayNameLength: return fail(400, { message: "Bitt gib einen Display Namen ein" })
case RegisterResponseCause.PasswordLength: return fail(400, { message: "Bitte gib ein Passwort ein." })
default:
return fail(500, { message: "Ein interner Fehler ist aufgetreten. Bitte versuche es erneut."})
}
}
return { message: "Erfolg" } return { message: "Erfolg" }
} }

View File

@ -1,4 +1,8 @@
<script lang="ts"> <script lang="ts">
import type { PageProps } from "./$types"
const { form }: PageProps = $props()
</script> </script>
@ -8,6 +12,7 @@
<div class="grid"> <div class="grid">
<h1>Login</h1> <h1>Login</h1>
<p class="error_msg">{form?.message}</p>
<label for="username">E-Mail: </label><input type="text" id="username" form="form_register" name="email" /> <label for="username">E-Mail: </label><input type="text" id="username" form="form_register" name="email" />
<label for="password">Passwort: </label><input type="password" id="password" form="form_register" name="password" /> <label for="password">Passwort: </label><input type="password" id="password" form="form_register" name="password" />
<label for="display_name">Anzeigename: </label><input type="text" id="display_name" form="form_register" name="display_name" /> <label for="display_name">Anzeigename: </label><input type="text" id="display_name" form="form_register" name="display_name" />
@ -25,6 +30,8 @@
width: 100%; width: 100%;
height: 100%; height: 100%;
padding-top: 100px;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -42,6 +49,11 @@
text-align: center; text-align: center;
grid-column: 1 / span 2; grid-column: 1 / span 2;
} }
.grid > p {
width: 100%;
grid-column: 1 / span 2;
}
.grid > button { .grid > button {
width: 50%; width: 50%;
@ -50,4 +62,8 @@
grid-column: 2; grid-column: 2;
} }
.error_msg {
color: red;
}
</style> </style>