@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();
}
}