UI/Components/ConfirmPrompt/ConfirmPromptOverlay.razor

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