From 34c48aa78ad0d8abfa8b63a5274286e87f2cdb4a Mon Sep 17 00:00:00 2001 From: Rachael Thomas Date: Wed, 28 Jan 2026 10:39:11 -0700 Subject: [PATCH] Update path sync effect so it sets isOpen from the current path --- components/ui/Page/Sidebar.tsx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/components/ui/Page/Sidebar.tsx b/components/ui/Page/Sidebar.tsx index 219330819..1640600cf 100644 --- a/components/ui/Page/Sidebar.tsx +++ b/components/ui/Page/Sidebar.tsx @@ -81,21 +81,19 @@ const ItemWithSubpages = ({ defaultOpen ?? getOpenState(section.pages ?? [], slug, pathNoHash), ); - // Update isOpen when the path changes + // Update isOpen when the path changes (e.g. after client-side navigation from search) useEffect(() => { // Have to do an initialization check like this so we can control it manually still if (pathNoHash !== initializedOnPath) { setInitializedOnPath(pathNoHash); - if (!isOpen) { - const isDeterminedOpen = getOpenState( - section.pages ?? [], - slug, - pathNoHash, - ); - setIsOpen(defaultOpen ?? isDeterminedOpen); - } + const isDeterminedOpen = getOpenState( + section.pages ?? [], + slug, + pathNoHash, + ); + setIsOpen(defaultOpen ?? isDeterminedOpen); } - }, [section, slug, pathNoHash, isOpen, defaultOpen, initializedOnPath]); + }, [section, slug, pathNoHash, defaultOpen, initializedOnPath]); // Create the debounced function once when component mounts // This helps produce a smoother experience when scrolling fast