fix: stabilize route startup render
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user