diff --git a/RpgRoller/Components/Pages/Home.razor.cs b/RpgRoller/Components/Pages/Home.razor.cs index 9ee7153..75297a0 100644 --- a/RpgRoller/Components/Pages/Home.razor.cs +++ b/RpgRoller/Components/Pages/Home.razor.cs @@ -69,6 +69,7 @@ public partial class Home private Guid? EditingCharacterId { get; set; } private Guid? EditingSkillId { get; set; } private bool StateRefreshInProgress { get; set; } + private bool HasInteractiveRenderStarted { get; set; } private DotNetObjectReference? DotNetRef { get; set; } [Inject] @@ -104,6 +105,8 @@ public partial class Home protected override async Task OnAfterRenderAsync(bool firstRender) { + HasInteractiveRenderStarted = true; + if (!firstRender) { return; @@ -901,6 +904,11 @@ public partial class Home private async Task StopStateEventsAsync() { + if (!HasInteractiveRenderStarted) + { + return; + } + try { await JS.InvokeVoidAsync("rpgRollerApi.stopStateEvents"); @@ -908,6 +916,9 @@ public partial class Home catch (JSDisconnectedException) { } + catch (InvalidOperationException ex) when (IsStaticRenderInteropException(ex)) + { + } } public async ValueTask DisposeAsync() @@ -916,6 +927,11 @@ public partial class Home DotNetRef?.Dispose(); } + private static bool IsStaticRenderInteropException(InvalidOperationException exception) + { + return exception.Message.Contains("statically rendered", StringComparison.OrdinalIgnoreCase); + } + private async Task RequestAsync(string method, string path, object? payload = null) { var response = await JS.InvokeAsync("rpgRollerApi.request", method, path, payload);