Fix admin nav banner logic

This commit is contained in:
Sam Becker 2024-04-28 12:59:42 -05:00
parent 7ab54e4868
commit 765f8367e5

View File

@ -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);