Fix admin menu navigation to play and management views

This commit is contained in:
2026-02-26 18:22:07 +01:00
parent c41aabc0a8
commit 52e3ae8b0f
5 changed files with 68 additions and 22 deletions

View File

@@ -22,9 +22,18 @@ public partial class Workspace : IAsyncDisposable
private async Task InitializeAsync()
{
var storedScreen = await JS.InvokeAsync<string?>("rpgRollerApi.getSessionValue", ScreenSessionKey);
if (string.Equals(storedScreen, "management", StringComparison.OrdinalIgnoreCase))
CurrentScreen = "management";
var requestedScreen = NormalizeRequestedScreen(RequestedScreen);
if (requestedScreen is not null)
{
CurrentScreen = requestedScreen;
await JS.InvokeVoidAsync("rpgRollerApi.setSessionValue", ScreenSessionKey, CurrentScreen);
}
else
{
var storedScreen = await JS.InvokeAsync<string?>("rpgRollerApi.getSessionValue", ScreenSessionKey);
if (string.Equals(storedScreen, "management", StringComparison.OrdinalIgnoreCase))
CurrentScreen = "management";
}
var storedPanel = await JS.InvokeAsync<string?>("rpgRollerApi.getSessionValue", MobilePanelSessionKey);
if (string.Equals(storedPanel, "log", StringComparison.OrdinalIgnoreCase))
@@ -225,7 +234,7 @@ public partial class Workspace : IAsyncDisposable
private async Task SwitchScreenAsync(string screen)
{
CurrentScreen = string.Equals(screen, "management", StringComparison.OrdinalIgnoreCase) ? "management" : "play";
CurrentScreen = NormalizeRequestedScreen(screen) ?? "play";
IsScreenMenuOpen = false;
await JS.InvokeVoidAsync("rpgRollerApi.setSessionValue", ScreenSessionKey, CurrentScreen);
}
@@ -522,6 +531,17 @@ public partial class Workspace : IAsyncDisposable
return string.Equals(visibility, "private", StringComparison.OrdinalIgnoreCase) ? "private" : "public";
}
private static string? NormalizeRequestedScreen(string? screen)
{
if (string.Equals(screen, "management", StringComparison.OrdinalIgnoreCase))
return "management";
if (string.Equals(screen, "play", StringComparison.OrdinalIgnoreCase))
return "play";
return null;
}
private bool CanEditSkill(SkillSummary skill)
{
if (SelectedCampaign is null)
@@ -822,6 +842,9 @@ public partial class Workspace : IAsyncDisposable
[Parameter]
public EventCallback AdminRequested { get; set; }
[Parameter]
public string? RequestedScreen { get; set; }
private string? SelectedCampaignName => SelectedCampaign?.Name;
private CharacterSummary? SelectedCharacter =>