refactor: split workspace routes

This commit is contained in:
2026-05-04 21:45:44 +02:00
parent def2a3f680
commit 9c3f7c039e
11 changed files with 281 additions and 192 deletions

View File

@@ -121,6 +121,11 @@ public partial class Workspace : IAsyncDisposable
return Task.CompletedTask;
}
private Task RequestRefreshAsync()
{
return InvokeAsync(StateHasChanged);
}
private static bool IsStaticRenderInteropException(InvalidOperationException exception)
{
return exception.Message.Contains("statically rendered", StringComparison.OrdinalIgnoreCase);
@@ -136,6 +141,7 @@ public partial class Workspace : IAsyncDisposable
[Parameter] public EventCallback<string?> LoggedOut { get; set; }
[Parameter] public WorkspaceRoute Route { get; set; } = WorkspaceRoute.Play;
[Parameter] public RenderFragment<WorkspacePageContext>? ChildContent { get; set; }
private WorkspaceState State { get; } = new();
private bool HasSessionInitialized { get; set; }
@@ -146,6 +152,10 @@ public partial class Workspace : IAsyncDisposable
private bool IsAdminRoute => Route == WorkspaceRoute.Admin;
private string AppCssClass => IsPlayRoute ? "rr-app app-play" : "rr-app";
private WorkspacePageContext PageContext => new(State, Play, Campaigns, Admin, Scope, Session,
RequestRefreshAsync, EnableCharacterControls, EnableCustomRollComposer, AdminDatabaseDownloadUrl,
HeaderMenuItems, IsPlayRoute, IsCampaignsRoute, IsAdminRoute);
private WorkspaceCampaignScopeCoordinator Scope => m_Scope ??= new(State, Feedback, JS, WorkspaceQuery,
() => IsPlayRoute, Play.EnsureSelectedCharacterActiveAsync, Play.RefreshSelectedCharacterSheetAsync,
Play.RefreshCampaignLogAsync, Play.ResetCampaignLogDetailState, Play.ResetCampaignStateTracking,