private async void AutoCloseTask(CancellationToken token, SAPToast toast) { try { await Task.Delay(500); toast.ShowAnimate = ""; await InvokeAsync(StateHasChanged); await Task.Delay(toast.AutoCloseDelay - TimeSpan.FromSeconds(0.5)); toast.CloseAnimate = AnimateBook.ZoomExits.ZoomOut; await InvokeAsync(StateHasChanged); await Task.Delay(300); if (!token.IsCancellationRequested) { Toasts.Remove(toast); await InvokeAsync(StateHasChanged); } } catch (Exception e) { } }
internal void ToastCloseController(SAPToast toast, bool isPaused) { if (isPaused) { toast.PauseTimer(); } else { toast.ResumeTimer(); } }
public void CreateToast(SAPToast toast) { toast.ShowAnimate = AnimationType; toast.SAPToastArea = this; Toasts.Add(toast); if (toast.ShowProgressbar) { toast.StartCountDown(); } else { AutoCloseHandler(toast); } StateHasChanged(); }
internal void DeleteToast(SAPToast toast) { toast.CloseAnimate = AnimateBook.ZoomExits.ZoomOut; InvokeAsync(StateHasChanged); Task.Delay(300); if (toast.ShowProgressbar) { toast.StopTimer(); } toast.ShowAnimate = ""; Toasts.Remove(toast); if (cts != null) { cts.Cancel(); } InvokeAsync(StateHasChanged); }
private async void AutoCloseHandler(SAPToast toast) { cts = new CancellationTokenSource(); await Task.Run(() => AutoCloseTask(cts.Token, toast)); }