40 lines
1.2 KiB
Plaintext
40 lines
1.2 KiB
Plaintext
@inherits LocalizableComponentBase
|
|||
|
|
@implements IDisposable
|
||
|
|
|
||
|
|
@* The question ConfirmService asks before what can't be undone, in MainLayout: a sheet from the bottom on a phone, a
|
||
|
|
dialog in the middle from md. Closing it in any way answers no. *@
|
||
|
|
<DModal Placement="DModalPlacement.ResponsiveBottom" IsOpen="Confirm.IsAsking" IsOpenChanged="Closed" CloseText="@Localizer["Close"]" data-confirm>
|
||
|
|
<Heading>@Confirm.Heading</Heading>
|
||
|
|
<ChildContent>
|
||
|
|
@if (Confirm.Text is { Length: > 0 } text)
|
||
|
|
{
|
||
|
|
<p class="text-sm">@text</p>
|
||
|
|
}
|
||
|
|
</ChildContent>
|
||
|
|
<Actions>
|
||
|
|
<DButton class="max-md:flex-1" OnClick="() => Confirm.Answer(false)" data-confirm-no>@Localizer["Cancel"]</DButton>
|
||
|
|
<DButton class="max-md:flex-1" Color="@(Confirm.Danger ? DColor.Error : DColor.Primary)" OnClick="() => Confirm.Answer(true)" data-confirm-yes>
|
||
|
|
@Confirm.ConfirmText
|
||
|
|
</DButton>
|
||
|
|
</Actions>
|
||
|
|
</DModal>
|
||
|
|
|
||
|
|
@code {
|
||
|
|
[Inject] ConfirmService Confirm { get; set; }
|
||
|
|
|
||
|
|
protected override void OnInitialized()
|
||
|
|
{
|
||
|
|
Confirm.Changed += Refresh;
|
||
|
|
IsLoading = false;
|
||
|
|
}
|
||
|
|
|
||
|
|
void Refresh() => InvokeAsync(StateHasChanged);
|
||
|
|
|
||
|
|
void Closed(bool open)
|
||
|
|
{
|
||
|
|
if (!open)
|
||
|
|
Confirm.Answer(false);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Dispose() => Confirm.Changed -= Refresh;
|
||
|
|
}
|