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)