@if (IsOpen) {
@Title
@ChildContent
} @code { [Parameter] public bool IsOpen { get; set; } [Parameter] public EventCallback IsOpenChanged { get; set; } [Parameter] [EditorRequired] public string Title { get; set; } = default!; [Parameter] public string ConfirmText { get; set; } = "Confirm"; [Parameter] public string ConfirmClass { get; set; } = "bg-emerald-600 hover:bg-emerald-500"; [Parameter] public RenderFragment? ChildContent { get; set; } [Parameter] [EditorRequired] public EventCallback OnConfirm { get; set; } [Parameter] public string? TestIdPrefix { get; set; } // Centralized test id base private string BaseTestId => string.IsNullOrWhiteSpace(TestIdPrefix) ? "confirm-modal" : $"{TestIdPrefix}-confirm-modal"; async Task Close() { IsOpen = false; await IsOpenChanged.InvokeAsync(false); } async Task Confirm() { await OnConfirm.InvokeAsync(); await Close(); } }