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;
}