From f59bf07d570c906ec796990c0674a0d7432df366 Mon Sep 17 00:00:00 2001 From: Ilion Beyst Date: Sat, 9 Apr 2022 10:18:49 +0200 Subject: show registration errors on register form --- web/pw-server/src/routes/register.svelte | 36 +++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/web/pw-server/src/routes/register.svelte b/web/pw-server/src/routes/register.svelte index 51cc106..a303025 100644 --- a/web/pw-server/src/routes/register.svelte +++ b/web/pw-server/src/routes/register.svelte @@ -2,7 +2,9 @@ let username: string | undefined; let password: string | undefined; - const onSubmit = () => { + let registrationErrors: string[] = []; + + const onSubmit = async () => { if (username === undefined || username.trim() === "") { return; } @@ -11,7 +13,9 @@ return; } - fetch("/api/register", { + registrationErrors = []; + + const response = await fetch("/api/register", { method: "POST", headers: { "Content-Type": "application/json", @@ -20,17 +24,29 @@ username, password, }), - }) - .then((resp) => resp.json()) - .then((data) => { - console.log(data); - }); + }); + + if (!response.ok) { + const resp = await response.json(); + const error = resp["error"]; + if (response.status == 422 && error["type"] === "validation_failed") { + registrationErrors = error["validation_errors"]; + } + } };

Create account

+ {#if registrationErrors.length > 0} +
    + {#each registrationErrors as errorMessage} +
  • {errorMessage}
  • + {/each} +
+ {/if} +