@inject IToastService toastService
@implements IDisposable
@if (Toast == null)
{
Add toast object...
}
else
{
@Toast.Title
@Toast.Message
}
@code {
[Parameter] public ToastModel? Toast { get; set; }
private readonly float removalTime = 1300;
private readonly float fadeoutTime = 1200;
private float Opacity()
{
if (Toast!.Age < fadeoutTime)
{
return 1;
}
return 1.0f - (Toast.Age - fadeoutTime) / (removalTime - fadeoutTime);
}
protected override void OnInitialized()
{
base.OnInitialized();
toastService.Subscribe(OnUpdate);
}
void Dismiss()
{
toastService.RemoveToast(Toast!);
}
void IDisposable.Dispose()
{
toastService.Unsubscribe(OnUpdate);
}
void OnUpdate()
{
if (Toast!.Age > removalTime)
{
toastService.RemoveToast(Toast);
}
}
}