Files
IGP-Fan-Reference/Services/Website/MyDialogService.cs
T

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();
}
}