From 311a3c2895d93803fcb15f2f5d58f56dc76b7fc4 Mon Sep 17 00:00:00 2001 From: SeanCassiere <33615041+SeanCassiere@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:45:56 +1200 Subject: [PATCH] fix: open the sidebar group by default if active --- app/components/DocsLayout.tsx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/components/DocsLayout.tsx b/app/components/DocsLayout.tsx index c2e50c10..0baf5dae 100644 --- a/app/components/DocsLayout.tsx +++ b/app/components/DocsLayout.tsx @@ -324,6 +324,7 @@ export function DocsLayout({ const { libraryId } = useParams({ from: '/$libraryId/$version/docs', }) + const { _splat } = useParams({ strict: false }) const frameworkConfig = useFrameworkConfig({ frameworks }) const versionConfig = useVersionConfig({ versions }) const menuConfig = useMenuConfig({ config, frameworks, repo }) @@ -367,9 +368,14 @@ export function DocsLayout({ const WrapperComp = group.collapsible ? 'details' : 'div' const LabelComp = group.collapsible ? 'summary' : 'div' - const isCollapsed = group.defaultCollapsed ?? false + const isChildActive = group.children.some((d) => d.to === _splat) + const configGroupOpenState = + typeof group.defaultCollapsed !== 'undefined' + ? !group.defaultCollapsed // defaultCollapsed is true means the group is closed + : undefined + const isOpen = isChildActive ? true : configGroupOpenState ?? false - const detailsProps = group.collapsible ? { open: !isCollapsed } : {} + const detailsProps = group.collapsible ? { open: isOpen } : {} return (