55 lines
1.2 KiB
Plaintext
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);
|
|
});
|
|
}
|
|
} |