Unify play management and admin screens in workspace

This commit is contained in:
2026-02-26 18:30:29 +01:00
parent 52e3ae8b0f
commit 54aabc6d8c
6 changed files with 216 additions and 71 deletions

View File

@@ -22,19 +22,16 @@ public partial class Home
try
{
_ = await ApiClient.RequestAsync<MeResponse>("GET", "/api/me");
WorkspaceScreenOverride = null;
CurrentView = HomeViewMode.Workspace;
ClearStatus();
}
catch (ApiRequestException ex) when (ex.StatusCode == 401)
{
WorkspaceScreenOverride = null;
CurrentView = HomeViewMode.Anonymous;
ClearStatus();
}
catch (ApiRequestException ex)
{
WorkspaceScreenOverride = null;
CurrentView = HomeViewMode.Anonymous;
SetStatus(ex.Message, true);
}
@@ -42,22 +39,6 @@ public partial class Home
private Task OnLoggedInAsync()
{
WorkspaceScreenOverride = null;
CurrentView = HomeViewMode.Workspace;
ClearStatus();
return InvokeAsync(StateHasChanged);
}
private Task OnAdminRequestedAsync()
{
CurrentView = HomeViewMode.Admin;
ClearStatus();
return InvokeAsync(StateHasChanged);
}
private Task OnWorkspaceRequestedAsync(string screen)
{
WorkspaceScreenOverride = NormalizeWorkspaceScreen(screen) ?? "play";
CurrentView = HomeViewMode.Workspace;
ClearStatus();
return InvokeAsync(StateHasChanged);
@@ -65,7 +46,6 @@ public partial class Home
private Task OnLoggedOutAsync(string? message)
{
WorkspaceScreenOverride = null;
CurrentView = HomeViewMode.Anonymous;
if (string.IsNullOrWhiteSpace(message))
{
@@ -90,19 +70,7 @@ public partial class Home
StatusIsError = false;
}
private static string? NormalizeWorkspaceScreen(string? screen)
{
if (string.Equals(screen, "management", StringComparison.OrdinalIgnoreCase))
return "management";
if (string.Equals(screen, "play", StringComparison.OrdinalIgnoreCase))
return "play";
return null;
}
private HomeViewMode CurrentView { get; set; } = HomeViewMode.Loading;
private string? WorkspaceScreenOverride { get; set; }
private string? StatusMessage { get; set; }
private bool StatusIsError { get; set; }
private bool HasInitialized { get; set; }