Razor UI component that renders a confirmation overlay. It shows a scrim, title, body and Cancel/Confirm buttons driven by ConfirmPrompt static state and updates when ConfirmPrompt.Version changes.
@namespace Sunless.Libraries.UI
@using Sandbox
@using Sandbox.UI
@attribute [StyleSheet]
@inherits Panel
<root class="confirm-overlay @(ConfirmPrompt.Open ? "is-open" : "")">
@if ( ConfirmPrompt.Open )
{
<div class="confirm-scrim" @onclick=@(() => ConfirmPrompt.Cancel())></div>
<div class="confirm-dialog">
<div class="confirm-title">@ConfirmPrompt.Title</div>
<div class="confirm-body">@ConfirmPrompt.Body</div>
<div class="confirm-actions">
<button class="btn" @onclick=@(() => ConfirmPrompt.Cancel())>@ConfirmPrompt.CancelLabel</button>
<button class="btn danger" @onclick=@(() => ConfirmPrompt.Confirm())>@ConfirmPrompt.ConfirmLabel</button>
</div>
</div>
}
</root>
@code
{
protected override int BuildHash() => HashCode.Combine( ConfirmPrompt.Version );
}