diff --git a/AGENTS.md b/AGENTS.md index 49d4d4db..a9502f67 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -241,6 +241,7 @@ Manual testing workflow: - Refactor `EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderPage.razor` to reduce complexity. - Move sender dashboard business/status logic into dedicated services and extension methods (for example effective status resolution, tab classification, receiver signed/rejected detection, and grid-layout filter sanitation). - Keep `EnvelopeSenderPage.razor` focused on UI composition/state orchestration; avoid embedding heavy domain logic directly in the Razor component. +- Apply a modular page architecture across Server pages (starting with `EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/EnvelopeSenderPage.razor`): split large pages into smaller subcomponents/partial modules, eliminate duplicated code paths, and centralize shared UI/domain logic for maintainability. ## Database diff --git a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/ReceiverPage.razor b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/ReceiverPage.razor index 04cae322..e6279a5f 100644 --- a/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/ReceiverPage.razor +++ b/EnvelopeGenerator.Server/EnvelopeGenerator.Server/Components/Pages/ReceiverPage.razor @@ -404,6 +404,12 @@ string? _shareMessage; bool _shareMessageIsError = false; + // ----- Reject popup state ----- + bool _rejectPopupVisible = false; + bool _isRejectSubmitting = false; + string _rejectReason = string.Empty; + string? _rejectValidationMessage; + async Task LogoutAsync() { if (_isLoggingOut || string.IsNullOrWhiteSpace(EnvelopeKey)) @@ -469,6 +475,29 @@ return; } + _isSharing = true; + _shareMessage = null; + _shareMessageIsError = false; + await InvokeAsync(StateHasChanged); + + try + { + _shareMessage = "Freigabe ist in dieser Ansicht derzeit nicht verfugbar."; + _shareMessageIsError = false; + } + catch (Exception ex) + { + Logger.LogError(ex, "Failed to share envelope {EnvelopeKey}", EnvelopeKey); + _shareMessage = "Freigabe fehlgeschlagen. Bitte versuchen Sie es erneut."; + _shareMessageIsError = true; + } + finally + { + _isSharing = false; + await InvokeAsync(StateHasChanged); + } + } + // ----- Lifecycle ----- protected override async Task OnInitializedAsync() {