mirror of
https://github.com/facebook/docusaurus.git
synced 2025-07-27 13:38:33 +02:00
fix(theme-classic): fix collapsed sidebar category expansion when navigating to another link within that category (#11338)
Co-authored-by: qqq614 <heeje.cho@navercorp.com>
This commit is contained in:
parent
c81808459d
commit
12bcad9837
1 changed files with 20 additions and 3 deletions
|
@ -37,18 +37,30 @@ function useAutoExpandActiveCategory({
|
||||||
isActive,
|
isActive,
|
||||||
collapsed,
|
collapsed,
|
||||||
updateCollapsed,
|
updateCollapsed,
|
||||||
|
activePath,
|
||||||
}: {
|
}: {
|
||||||
isActive: boolean;
|
isActive: boolean;
|
||||||
collapsed: boolean;
|
collapsed: boolean;
|
||||||
updateCollapsed: (b: boolean) => void;
|
updateCollapsed: (b: boolean) => void;
|
||||||
|
activePath: string;
|
||||||
}) {
|
}) {
|
||||||
const wasActive = usePrevious(isActive);
|
const wasActive = usePrevious(isActive);
|
||||||
|
const previousActivePath = usePrevious(activePath);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const justBecameActive = isActive && !wasActive;
|
const justBecameActive = isActive && !wasActive;
|
||||||
if (justBecameActive && collapsed) {
|
const stillActiveButPathChanged =
|
||||||
|
isActive && wasActive && activePath !== previousActivePath;
|
||||||
|
if ((justBecameActive || stillActiveButPathChanged) && collapsed) {
|
||||||
updateCollapsed(false);
|
updateCollapsed(false);
|
||||||
}
|
}
|
||||||
}, [isActive, wasActive, collapsed, updateCollapsed]);
|
}, [
|
||||||
|
isActive,
|
||||||
|
wasActive,
|
||||||
|
collapsed,
|
||||||
|
updateCollapsed,
|
||||||
|
activePath,
|
||||||
|
previousActivePath,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -150,7 +162,12 @@ export default function DocSidebarItemCategory({
|
||||||
setExpandedItem(toCollapsed ? null : index);
|
setExpandedItem(toCollapsed ? null : index);
|
||||||
setCollapsed(toCollapsed);
|
setCollapsed(toCollapsed);
|
||||||
};
|
};
|
||||||
useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
|
useAutoExpandActiveCategory({
|
||||||
|
isActive,
|
||||||
|
collapsed,
|
||||||
|
updateCollapsed,
|
||||||
|
activePath,
|
||||||
|
});
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
collapsible &&
|
collapsible &&
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue