diff --git a/src/admin/AdminNavClient.tsx b/src/admin/AdminNavClient.tsx
index 98c08c64..eea8d51c 100644
--- a/src/admin/AdminNavClient.tsx
+++ b/src/admin/AdminNavClient.tsx
@@ -1,7 +1,9 @@
'use client';
+import LinkWithStatus from '@/components/LinkWithStatus';
import Note from '@/components/Note';
import SiteGrid from '@/components/SiteGrid';
+import Spinner from '@/components/Spinner';
import {
PATH_ADMIN_CONFIGURATION,
checkPathPrefix,
@@ -11,7 +13,6 @@ import {
import { useAppState } from '@/state/AppState';
import { clsx } from 'clsx/lite';
import { differenceInMinutes } from 'date-fns';
-import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { useEffect, useMemo, useState } from 'react';
import { BiCog } from 'react-icons/bi';
@@ -60,40 +61,43 @@ export default function AdminNavClient({
contentMain={
{items.map(({ label, href, count }) =>
-
{label}
{count > 0 &&
({count})}
- )}
+ )}
-
}
>
-
+
{shouldShowBanner &&
}>
diff --git a/src/components/LinkWithStatus.tsx b/src/components/LinkWithStatus.tsx
index fe049330..8b0876a3 100644
--- a/src/components/LinkWithStatus.tsx
+++ b/src/components/LinkWithStatus.tsx
@@ -14,15 +14,19 @@ import clsx from 'clsx/lite';
// Avoid showing spinner for too short a time
const FLICKER_THRESHOLD = 400;
-// Clear loading status after 10 seconds of inactivity
-const MAX_LOADING_DURATION = 10_000;
+// Clear loading status after long duration of inactivity
+const MAX_LOADING_DURATION = 15_000;
export type LinkWithStatusProps = ComponentProps
& {
- loader?: ReactNode
+ loadingElement?: ReactNode
+ loadingClassName?: string
+ contentClassName?: string
}
export default function LinkWithStatus({
- loader,
+ loadingElement,
+ loadingClassName,
+ contentClassName,
href,
className,
onClick,
@@ -71,7 +75,11 @@ export default function LinkWithStatus({
return {
const isOpeningNewTab = e.metaKey || e.ctrlKey;
if (!isVisitingLinkHref && !isOpeningNewTab) {
@@ -92,17 +100,20 @@ export default function LinkWithStatus({
>
{children}
- {isLoading && loader &&
- {loader}
+ {loadingElement}
}
;
}
diff --git a/src/components/SwitcherItem.tsx b/src/components/SwitcherItem.tsx
index d6160bda..eb1b70be 100644
--- a/src/components/SwitcherItem.tsx
+++ b/src/components/SwitcherItem.tsx
@@ -50,7 +50,7 @@ export default function SwitcherItem({
href,
className,
prefetch,
- loader: ,
+ loadingElement: ,
}}>
{renderContent(icon)}