@using Services @inject IToastService toastService @implements IDisposable @if (Toast == null) {
Add toast object...
} else {
@Toast.Title
@Toast.Message
} @code { [Parameter] public ToastModel? Toast { get; set; } = default!; private bool isFadingOut = false; private string FadeoutStyle => isFadingOut ? "fadeout" : ""; private int removalTime = 150000; private int fadeoutTime = 1000; private Timer removalTimer = null!; private Timer fadeoutTimer = null!; protected override void OnInitialized() { #if DEBUG removalTime = 8000; #endif removalTimer = new Timer(removalTime); removalTimer.Elapsed += OnRemoval!; removalTimer.Enabled = true; fadeoutTimer = new Timer(removalTime - fadeoutTime); fadeoutTimer.Elapsed += OnFadeout!; fadeoutTimer.Enabled = true; toastService.Subscribe(StateHasChanged); } void OnFadeout(object source, ElapsedEventArgs eventArgs) { // isFadingOut = true; StateHasChanged(); } void OnRemoval(object source, ElapsedEventArgs eventArgs) { //toastService.RemoveToast(Toast!); StateHasChanged(); } void Dismiss() { toastService.RemoveToast(Toast!); } public void Dispose() { removalTimer.Elapsed -= OnRemoval!; fadeoutTimer.Elapsed -= OnFadeout!; toastService.Unsubscribe(StateHasChanged); } }