@using System.Timers
@ChildContent
This message will close soon.
@code { [Parameter][EditorRequired] public RenderFragment? ChildContent { get; set; } [Parameter][EditorRequired] public EventCallback OnClickClose { get; set; } [Parameter] public int SecondsUntilClose { get; set; } = 3; private string TimeToClose => $"{SecondsUntilClose}s"; private System.Timers.Timer closingTimer = new System.Timers.Timer(); protected override void OnParametersSet() { closingTimer = new System.Timers.Timer(TimeSpan.FromSeconds(SecondsUntilClose).TotalMilliseconds) { AutoReset = false }; closingTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerElapsed); closingTimer.Start(); } private void OnTimerElapsed(object? source, ElapsedEventArgs elapsedEventArgs) { OnClickClose.InvokeAsync(); } }