You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.1 KiB
56 lines
1.1 KiB
using Microsoft.AspNetCore.Components; |
|
|
|
namespace Services.Website; |
|
|
|
public class DialogContents |
|
{ |
|
public string Title { get; set; } |
|
public string Message { get; set; } |
|
public string ConfirmButtonLabel { get; set; } |
|
public EventCallback<EventArgs> OnConfirm { get; set; } |
|
public EventCallback<EventArgs> OnCancel { get; set; } |
|
} |
|
|
|
public class MyDialogService : IMyDialogService |
|
{ |
|
private DialogContents _dialogContents; |
|
|
|
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(); |
|
} |
|
} |