fix: stabilize route startup render

This commit is contained in:
2026-05-04 22:27:14 +02:00
parent 12612e05fa
commit a69c6284d7
6 changed files with 47 additions and 32 deletions

View File

@@ -12,6 +12,10 @@ public partial class Workspace : IAsyncDisposable
protected override void OnParametersSet()
{
State.IsScreenMenuOpen = false;
if (PreviousRoute.HasValue && PreviousRoute.Value != Route && HasSessionInitialized)
_ = InvokeAsync(HandleRouteChangedAsync);
PreviousRoute = Route;
}
[JSInvokable]
@@ -114,6 +118,24 @@ public partial class Workspace : IAsyncDisposable
await RequestRefreshAsync();
}
private async Task HandleRouteChangedAsync()
{
if (!HasSessionInitialized)
return;
if (IsAdminRoute)
{
await Live.SyncStateEventsAsync();
await EnsureAdminUsersLoadedAsync();
await RequestRefreshAsync();
return;
}
await Scope.RefreshCampaignScopeAsync();
await Live.SyncStateEventsAsync();
await RequestRefreshAsync();
}
private static bool IsStaticRenderInteropException(InvalidOperationException exception)
{
return exception.Message.Contains("statically rendered", StringComparison.OrdinalIgnoreCase);
@@ -220,4 +242,5 @@ public partial class Workspace : IAsyncDisposable
private WorkspaceCampaignScopeCoordinator? m_Scope;
private WorkspaceSessionCoordinator? m_Session;
private Task? InitializationTask { get; set; }
}
private WorkspaceRoute? PreviousRoute { get; set; }
}