Files
Moonlight/Moonlight/Shared/Components/Forms/DeleteButton.razor
2023-04-13 16:43:42 +02:00

55 lines
1.2 KiB
Plaintext

@using Moonlight.App.Services
@using Moonlight.App.Services.Interop
@inject SmartTranslateService SmartTranslateService
@inject AlertService AlertService
@if (!Working)
{
<button class="btn btn-danger p-4 @AdditionalCssClasses" @onclick="Do">
<i class="bx bx-trash p-0 px-2"></i>
</button>
}
else
{
<button class="btn btn-danger p-4 disabled @AdditionalCssClasses" disabled="">
<span class="spinner-border spinner-border-sm align-middle me-2 p-0 px-2"></span>
</button>
}
@code
{
private bool Working { get; set; } = false;
[Parameter]
public Func<Task>? OnClick { get; set; }
[Parameter]
public bool Confirm { get; set; } = false;
[Parameter]
public string AdditionalCssClasses { get; set; } = "";
private async Task Do()
{
Working = true;
StateHasChanged();
await Task.Run(async () =>
{
if (Confirm)
{
var b = await AlertService.ConfirmMath();
if (b)
{
if(OnClick != null)
await OnClick.Invoke();
}
}
Working = false;
await InvokeAsync(StateHasChanged);
});
}
}