using WebAssembly.Data; namespace WebAssembly.Services; public class ToastService : IToastService { private readonly List _toasts = []; public void Subscribe(Action action) { OnChange += action; } public void Unsubscribe(Action action) { OnChange += action; } public void AddToast(ToastModel toast) { _toasts.Insert(0, toast); NotifyDataChanged(); } public void RemoveToast(ToastModel toast) { _toasts.Remove(toast); } public bool HasToasts() { return _toasts.Count > 0; } public List GetToasts() { return _toasts; } public void AgeToasts() { foreach (var toast in _toasts) toast.Age++; NotifyDataChanged(); } public void ClearAllToasts() { _toasts.Clear(); NotifyDataChanged(); } private event Action OnChange = null!; private void NotifyDataChanged() { OnChange(); } }