@using System.Timers
@using WebAssembly.Components.Feedback
@using WebAssembly.Data
@implements IDisposable;
@inject IToastService ToastService
@if (ToastService.HasToasts())
{
@foreach (var toast in Toasts)
{
}
}
@code {
private List Toasts => ToastService.GetToasts();
private Timer _ageTimer = null!;
protected override void OnInitialized()
{
base.OnInitialized();
ToastService.Subscribe(OnUpdate);
_ageTimer = new Timer(10);
_ageTimer.Elapsed += OnAge!;
_ageTimer.Enabled = true;
}
void IDisposable.Dispose()
{
ToastService.Unsubscribe(OnUpdate);
}
void OnAge(object? sender, ElapsedEventArgs elapsedEventArgs)
{
ToastService.AgeToasts();
_ageTimer.Enabled = true;
}
void OnUpdate()
{
StateHasChanged();
}
}