Fix admin menu navigation to play and management views
This commit is contained in:
@@ -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 =>
|
||||
|
||||
Reference in New Issue
Block a user