56 lines
1.1 KiB
C#
56 lines
1.1 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
|
|
namespace Services.Website;
|
|
|
|
public class DialogContents
|
|
{
|
|
public string Title { get; set; } = string.Empty;
|
|
public string Message { get; set; } = string.Empty;
|
|
public string ConfirmButtonLabel { get; set; } = string.Empty;
|
|
public EventCallback<EventArgs> OnConfirm { get; set; }
|
|
public EventCallback<EventArgs> OnCancel { get; set; }
|
|
}
|
|
|
|
public class MyDialogService : IMyDialogService
|
|
{
|
|
private DialogContents _dialogContents = null!;
|
|
|
|
public bool IsVisible { get; set; }
|
|
|
|
public void Subscribe(Action action)
|
|
{
|
|
OnChange += action;
|
|
}
|
|
|
|
public void Unsubscribe(Action action)
|
|
{
|
|
OnChange -= action;
|
|
}
|
|
|
|
public void Show(DialogContents dialogContents)
|
|
{
|
|
_dialogContents = dialogContents;
|
|
IsVisible = true;
|
|
|
|
NotifyDataChanged();
|
|
}
|
|
|
|
public DialogContents GetDialogContents()
|
|
{
|
|
return _dialogContents;
|
|
}
|
|
|
|
public void Hide()
|
|
{
|
|
IsVisible = false;
|
|
|
|
NotifyDataChanged();
|
|
}
|
|
|
|
private event Action OnChange = null!;
|
|
|
|
private void NotifyDataChanged()
|
|
{
|
|
OnChange();
|
|
}
|
|
} |