Restore workspace prerender and auth errors
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -94,4 +92,4 @@ else
|
||||
return value.Count > 0 ? value[0] : null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user