Skip to content

Commit 12bcad9

Browse files
qqq614qqq614
andauthored
fix(theme-classic): fix collapsed sidebar category expansion when navigating to another link within that category (#11338)
Co-authored-by: qqq614 <[email protected]>
1 parent c818084 commit 12bcad9

File tree

1 file changed

+20
-3
lines changed
  • packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category

1 file changed

+20
-3
lines changed

packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,30 @@ function useAutoExpandActiveCategory({
3737
isActive,
3838
collapsed,
3939
updateCollapsed,
40+
activePath,
4041
}: {
4142
isActive: boolean;
4243
collapsed: boolean;
4344
updateCollapsed: (b: boolean) => void;
45+
activePath: string;
4446
}) {
4547
const wasActive = usePrevious(isActive);
48+
const previousActivePath = usePrevious(activePath);
4649
useEffect(() => {
4750
const justBecameActive = isActive && !wasActive;
48-
if (justBecameActive && collapsed) {
51+
const stillActiveButPathChanged =
52+
isActive && wasActive && activePath !== previousActivePath;
53+
if ((justBecameActive || stillActiveButPathChanged) && collapsed) {
4954
updateCollapsed(false);
5055
}
51-
}, [isActive, wasActive, collapsed, updateCollapsed]);
56+
}, [
57+
isActive,
58+
wasActive,
59+
collapsed,
60+
updateCollapsed,
61+
activePath,
62+
previousActivePath,
63+
]);
5264
}
5365

5466
/**
@@ -150,7 +162,12 @@ export default function DocSidebarItemCategory({
150162
setExpandedItem(toCollapsed ? null : index);
151163
setCollapsed(toCollapsed);
152164
};
153-
useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
165+
useAutoExpandActiveCategory({
166+
isActive,
167+
collapsed,
168+
updateCollapsed,
169+
activePath,
170+
});
154171
useEffect(() => {
155172
if (
156173
collapsible &&

0 commit comments

Comments
 (0)