diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverReportPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverReportPage.razor index 839ecfa6..e53a1e67 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverReportPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeReceiverReportPage.razor @@ -112,17 +112,17 @@ } - @* Unterschrift ändern button (when signature captured) *@ - @if (_capturedSignature is not null) + @* Unterschreiben button — visible only when signature fields exist *@ + @if (_signatures.Count > 0) { } @@ -444,16 +444,16 @@ } else { - _activeSignatureTab = SignatureTabDraw; - _signaturePopupVisible = _signatures.Count > 0; + _activeSignatureTab = SignatureTabDraw; + _signaturePopupVisible = false; _popupValidationMessage = null; } } catch (Exception ex) { Logger.LogWarning(ex, "Failed to load cached signature for {EnvelopeKey}", EnvelopeKey); - _activeSignatureTab = SignatureTabDraw; - _signaturePopupVisible = _signatures.Count > 0; + _activeSignatureTab = SignatureTabDraw; + _signaturePopupVisible = false; _popupValidationMessage = null; } } @@ -690,9 +690,15 @@ Logger.LogInformation( "Signature cached with sid={Sid} for envelope {EnvelopeKey}", sid, EnvelopeKey); - // Navigate to signed page + // Null the report → DxReportViewer removed from DOM → no crash on dispose + _report = null; + await InvokeAsync(StateHasChanged); + await Task.Delay(50); + + // Navigate — forceLoad:true for clean circuit teardown Navigation.NavigateTo( - $"/envelope/{Uri.EscapeDataString(EnvelopeKey!)}/signed?sid={sid}"); + $"/envelope/{Uri.EscapeDataString(EnvelopeKey!)}/signed?sid={sid}", + forceLoad: true); } async Task GetActiveSignatureDataUrlAsync()