diff --git a/RpgRoller/Components/App.razor b/RpgRoller/Components/App.razor index bbea768..49c232a 100644 --- a/RpgRoller/Components/App.razor +++ b/RpgRoller/Components/App.razor @@ -17,7 +17,7 @@ @if (UseInteractiveApp) { - + } @@ -27,7 +27,7 @@ } else { - + } @if (UseInteractiveApp) @@ -38,11 +38,9 @@ else @code { - [Inject] - private IGameService GameService { get; set; } = null!; + [Inject] private IGameService GameService { get; set; } = null!; - [CascadingParameter] - private HttpContext? HttpContext { get; set; } + [CascadingParameter] private HttpContext? HttpContext { get; set; } private bool UseInteractiveApp => !UseStaticAuthPage; @@ -94,4 +92,4 @@ else return value.Count > 0 ? value[0] : null; } -} +} \ No newline at end of file diff --git a/RpgRoller/wwwroot/js/rpgroller-api.js b/RpgRoller/wwwroot/js/rpgroller-api.js index ce4a13f..e1eec84 100644 --- a/RpgRoller/wwwroot/js/rpgroller-api.js +++ b/RpgRoller/wwwroot/js/rpgroller-api.js @@ -275,6 +275,11 @@ window.rpgRollerApi = (() => { errorElement.textContent = message || ""; } + function setInvalidCredentialsErrors(form) { + setFieldError(form, "username", "Invalid username or password."); + setFieldError(form, "password", "Invalid username or password."); + } + function readFormData(form) { return Object.fromEntries(new FormData(form).entries()); } @@ -325,6 +330,7 @@ window.rpgRollerApi = (() => { }); if (Object.keys(errors).length > 0) { + setAuthStatus(statusElement, "Resolve validation issues before submitting.", true); setFormError(form, "Resolve validation issues before submitting."); return; } @@ -345,12 +351,17 @@ window.rpgRollerApi = (() => { try { const response = await request("POST", endpoint, requestBody); if (!response.ok) { + setAuthStatus(statusElement, response.error || "Request failed.", true); + if (formType === "register" && response.code === "duplicate_username") { setFieldError(form, "username", "Username is already taken. Choose another one."); + } else if (formType === "login" && response.code === "invalid_credentials") { + setInvalidCredentialsErrors(form); } else { setFormError(form, response.error || "Request failed."); } + setFormError(form, response.error || "Request failed."); return; }