diff --git a/surfsense_web/components/announcements/AnnouncementToastProvider.tsx b/surfsense_web/components/announcements/AnnouncementToastProvider.tsx index 6cb1b17e5..9095b84aa 100644 --- a/surfsense_web/components/announcements/AnnouncementToastProvider.tsx +++ b/surfsense_web/components/announcements/AnnouncementToastProvider.tsx @@ -65,6 +65,8 @@ export function AnnouncementToastProvider() { if (hasChecked.current) return; hasChecked.current = true; + const staggerTimers: ReturnType[] = []; + const timer = setTimeout(() => { const authed = isAuthenticated(); const active = getActiveAnnouncements(announcements, authed); @@ -74,11 +76,18 @@ export function AnnouncementToastProvider() { for (let i = 0; i < importantUntoasted.length; i++) { const announcement = importantUntoasted[i]; - setTimeout(() => showAnnouncementToast(announcement), i * 800); + const staggerId = setTimeout( + () => showAnnouncementToast(announcement), + i * 800 + ); + staggerTimers.push(staggerId); } }, 1500); - return () => clearTimeout(timer); + return () => { + clearTimeout(timer); + staggerTimers.forEach((id) => clearTimeout(id)); + }; }, []); return null;