diff --git a/apps/web/src/components/layout/app-layout.tsx b/apps/web/src/components/layout/app-layout.tsx index d97d4cdd..4fcdce19 100644 --- a/apps/web/src/components/layout/app-layout.tsx +++ b/apps/web/src/components/layout/app-layout.tsx @@ -85,22 +85,9 @@ export function AppLayout({ localStorage.setItem(SIDEBAR_STATE_KEY, String(newState)) } - // Prevent hydration mismatch - if (!mounted) { - return ( -
- {showBackground && ( - - )} -
{children}
-
- ) - } + // Keep the navigation shell in the server-rendered HTML. If a rolling deploy + // or stale browser cache delays hydration, the operator still has navigation. + const effectiveCollapsed = mounted ? collapsed : false return (
@@ -117,14 +104,14 @@ export function AppLayout({ {/* Sidebar */} {/* Header */}
{/* Main Content */} @@ -133,7 +120,7 @@ export function AppLayout({ 'relative z-10', 'pt-[68px]', 'transition-all duration-300 ease-out', - collapsed ? 'ml-16' : 'ml-[224px]' + effectiveCollapsed ? 'ml-16' : 'ml-[224px]' )} > {fullBleed ? (