From 72dd044c837dff83b41b1d69a9247f6ffca79cd3 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 28 Apr 2024 11:23:55 -0500 Subject: [PATCH] Hide banner for interior admin pages --- src/admin/AdminNavClient.tsx | 7 +++++-- src/site/paths.ts | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/admin/AdminNavClient.tsx b/src/admin/AdminNavClient.tsx index 69709277..953b56d1 100644 --- a/src/admin/AdminNavClient.tsx +++ b/src/admin/AdminNavClient.tsx @@ -6,6 +6,7 @@ import { PATH_ADMIN_CONFIGURATION, checkPathPrefix, isPathAdminConfiguration, + isPathTopLevelAdmin, } from '@/site/paths'; import { useAppState } from '@/state/AppState'; import { clsx } from 'clsx/lite'; @@ -39,17 +40,19 @@ export default function AdminNavClient({ .concat(adminUpdateTimes) , [mostRecentPhotoUpdateTime, adminUpdateTimes]); - const [shouldShowBanner, setShouldShowBanner] = + const [hasRecentUpdates, setHasRecentUpdates] = useState(areTimesRecent(updateTimes)); useEffect(() => { // Check every 10 seconds if update times are recent const timeout = setTimeout(() => - setShouldShowBanner(areTimesRecent(updateTimes)) + setHasRecentUpdates(areTimesRecent(updateTimes)) , 10_000); return () => clearTimeout(timeout); }, [updateTimes]); + const shouldShowBanner = hasRecentUpdates && isPathTopLevelAdmin(pathname); + return ( export const isPathAdmin = (pathname?: string) => checkPathPrefix(pathname, PATH_ADMIN); +export const isPathTopLevelAdmin = (pathname?: string) => + PATHS_ADMIN.some(path => path === pathname); + export const isPathAdminConfiguration = (pathname?: string) => checkPathPrefix(pathname, PATH_ADMIN_CONFIGURATION);