From 765f8367e5ca223254c9016b694de733dbed0670 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 28 Apr 2024 12:59:42 -0500 Subject: [PATCH] Fix admin nav banner logic --- src/admin/AdminNavClient.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/admin/AdminNavClient.tsx b/src/admin/AdminNavClient.tsx index 4772002f..6c30609b 100644 --- a/src/admin/AdminNavClient.tsx +++ b/src/admin/AdminNavClient.tsx @@ -17,6 +17,7 @@ import { useEffect, useMemo, useState } from 'react'; import { BiCog } from 'react-icons/bi'; import { FaRegClock } from 'react-icons/fa'; +// Updates considered recent if they occurred in past 5 minutes const areTimesRecent = (dates: Date[]) => dates .some(date => differenceInMinutes(new Date(), date) < 5); @@ -44,11 +45,12 @@ export default function AdminNavClient({ useState(areTimesRecent(updateTimes)); useEffect(() => { - // Check every 10 seconds if update times are recent - const timeout = setTimeout(() => + // Check every 5 seconds if update times are recent + setHasRecentUpdates(areTimesRecent(updateTimes)); + const interval = setInterval(() => setHasRecentUpdates(areTimesRecent(updateTimes)) - , 10_000); - return () => clearTimeout(timeout); + , 5_000); + return () => clearInterval(interval); }, [updateTimes]); const shouldShowBanner = hasRecentUpdates && isPathTopLevelAdmin(pathname);