@page "/"
<h1>Hello, world!</h1>
<button class="btn btn-primary" @onclick="BtnShowConfirm">Show Dialog!</button>
@if (IsConfirmModalVisible)
{
<div class="modal fade show" style="display:block; background-color: rgba(10,10,10,.8)" aria-modal="true" role="dialog" @onclick="ConfirmModalCancel">
<div class="modal-dialog" @onclick:stopPropagation="true">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">@ConfirmHeading</h4>
<button type="button" class="close" @onclick="ConfirmModalCancel">×</button>
</div>
<div class="modal-body">
<p>@ConfirmMessage</p>
</div>
<div class="modal-footer">
<button type="button" class="btn" @onclick="ConfirmModalCancel">Não</button>
<button type="button" class="btn btn-danger" @onclick=ConfirmModalOk>Sim</button>
</div>
</div>
</div>
</div>
}
@code
{
private Action _externalActionOK;
private Action _externalActionCancel;
public string ConfirmHeading { get; set; }
public string ConfirmMessage { get; set; }
public bool IsConfirmModalVisible { get; set; }
public void BtnShowConfirm()
{
ShowConfirmModal("Title", "Message", () => Console.WriteLine("OK"), () => Console.WriteLine("Cancel"));
}
public void ShowConfirmModal(string title, string message, Action actionOk, Action actionCancel = default)
{
ConfirmHeading = title;
ConfirmMessage = message;
_externalActionOK = actionOk;
_externalActionCancel = actionCancel;
IsConfirmModalVisible = true;
StateHasChanged();
}
public void ConfirmModalOk()
{
ConfirmHeading = String.Empty;
ConfirmMessage = String.Empty;
IsConfirmModalVisible = false;
_externalActionOK?.Invoke();
StateHasChanged();
}
public void ConfirmModalCancel()
{
ConfirmHeading = String.Empty;
ConfirmMessage = String.Empty;
IsConfirmModalVisible = false;
_externalActionCancel?.Invoke();
StateHasChanged();
}
}