diff --git a/samples/BlazorServer/Shared/NavMenu.razor b/samples/BlazorServer/Shared/NavMenu.razor index ae4a65c..b2d7a10 100644 --- a/samples/BlazorServer/Shared/NavMenu.razor +++ b/samples/BlazorServer/Shared/NavMenu.razor @@ -6,12 +6,12 @@
-
diff --git a/src/Blazored.Toast/BlazoredToasts.razor.cs b/src/Blazored.Toast/BlazoredToasts.razor.cs index 51da04c..5d76c13 100644 --- a/src/Blazored.Toast/BlazoredToasts.razor.cs +++ b/src/Blazored.Toast/BlazoredToasts.razor.cs @@ -27,6 +27,7 @@ public partial class BlazoredToasts [Parameter] public string ErrorIcon { get; set; } [Parameter] public ToastPosition Position { get; set; } = ToastPosition.TopRight; [Parameter] public int Timeout { get; set; } = 5; + [Parameter] public bool RemoveToastsOnNavigation { get; set; } private string PositionClass { get; set; } = string.Empty; internal List ToastList { get; set; } = new List(); @@ -35,6 +36,11 @@ protected override void OnInitialized() { ToastService.OnShow += ShowToast; + if (RemoveToastsOnNavigation) + { + NavigationManager.LocationChanged += ClearToasts; + } + PositionClass = $"position-{Position.ToString().ToLower()}"; if (( !string.IsNullOrEmpty(InfoIcon) @@ -57,6 +63,15 @@ public void RemoveToast(Guid toastId) }); } + private void ClearToasts(object sender, LocationChangedEventArgs args) + { + InvokeAsync(() => + { + ToastList.Clear(); + StateHasChanged(); + }); + } + private ToastSettings BuildToastSettings(ToastLevel level, RenderFragment message, string heading) { switch (level)