fix(#112): initialize sidebar accordion state from initial route
Some checks failed
CI / build (push) Failing after 43s
CI / cleanup-branch (push) Has been skipped
CI / docker (push) Has been skipped
CI / deploy (push) Has been skipped
CI / deploy-feature (push) Has been skipped

Direct navigation to /admin/* now correctly opens Admin section
and collapses operational sections on first render. Previously
the accordion effect only triggered on route transitions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-02 18:36:43 +02:00
parent d5f5601554
commit d21d8b2c48

View File

@@ -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(() => {