Restore workspace prerender and auth errors

This commit is contained in:
2026-05-02 23:53:40 +02:00
parent 2d2ed561cc
commit 1f19bf7bfd
2 changed files with 16 additions and 7 deletions

View File

@@ -17,7 +17,7 @@
<link href="https://fonts.googleapis.com/css2?family=Noto+Color+Emoji&display=swap" rel="stylesheet">
@if (UseInteractiveApp)
{
<HeadOutlet @rendermode="@(new InteractiveServerRenderMode(prerender: false))"/>
<HeadOutlet @rendermode="InteractiveServer"/>
}
</head>
<body>
@@ -27,7 +27,7 @@
}
else
{
<Routes @rendermode="@(new InteractiveServerRenderMode(prerender: false))"/>
<Routes @rendermode="InteractiveServer"/>
}
<script src="js/rpgroller-api.js"></script>
@if (UseInteractiveApp)
@@ -38,11 +38,9 @@ else
</html>
@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;

View File

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