diff --git a/ui/src/components/LayoutShell.tsx b/ui/src/components/LayoutShell.tsx index 97abd2d9..837e1e18 100644 --- a/ui/src/components/LayoutShell.tsx +++ b/ui/src/components/LayoutShell.tsx @@ -181,16 +181,15 @@ function LayoutContent() { const [filterQuery, setFilterQuery] = useState(''); // --- Section open states ------------------------------------------ - const [appsOpen, setAppsOpen] = useState(() => readCollapsed(SK_APPS, true)); - const [agentsOpen, setAgentsOpen] = useState(() => readCollapsed(SK_AGENTS, false)); - const [routesOpen, setRoutesOpen] = useState(() => readCollapsed(SK_ROUTES, false)); - const [adminOpen, setAdminOpen] = useState(() => readCollapsed(SK_ADMIN, false)); + const isAdminPage = location.pathname.startsWith('/admin'); + const [appsOpen, setAppsOpen] = useState(() => isAdminPage ? false : readCollapsed(SK_APPS, true)); + const [agentsOpen, setAgentsOpen] = useState(() => isAdminPage ? false : readCollapsed(SK_AGENTS, false)); + const [routesOpen, setRoutesOpen] = useState(() => isAdminPage ? false : readCollapsed(SK_ROUTES, false)); + const [adminOpen, setAdminOpen] = useState(() => isAdminPage ? true : readCollapsed(SK_ADMIN, false)); // Ref to remember operational section states when switching to admin const opsStateRef = useRef({ apps: appsOpen, agents: agentsOpen, routes: routesOpen }); - const isAdminPage = location.pathname.startsWith('/admin'); - // Accordion effect: when entering admin, collapse operational sections; when leaving, restore const prevAdminRef = useRef(isAdminPage); useEffect(() => {