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:
hjcho 2025-07-24 18:03:25 +09:00 committed by GitHub
parent c81808459d
commit 12bcad9837
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -37,18 +37,30 @@ function useAutoExpandActiveCategory({
isActive,
collapsed,
updateCollapsed,
activePath,
}: {
isActive: boolean;
collapsed: boolean;
updateCollapsed: (b: boolean) => void;
activePath: string;
}) {
const wasActive = usePrevious(isActive);
const previousActivePath = usePrevious(activePath);
useEffect(() => {
const justBecameActive = isActive && !wasActive;
if (justBecameActive && collapsed) {
const stillActiveButPathChanged =
isActive && wasActive && activePath !== previousActivePath;
if ((justBecameActive || stillActiveButPathChanged) && collapsed) {
updateCollapsed(false);
}
}, [isActive, wasActive, collapsed, updateCollapsed]);
}, [
isActive,
wasActive,
collapsed,
updateCollapsed,
activePath,
previousActivePath,
]);
}
/**
@ -150,7 +162,12 @@ export default function DocSidebarItemCategory({
setExpandedItem(toCollapsed ? null : index);
setCollapsed(toCollapsed);
};
useAutoExpandActiveCategory({isActive, collapsed, updateCollapsed});
useAutoExpandActiveCategory({
isActive,
collapsed,
updateCollapsed,
activePath,
});
useEffect(() => {
if (
collapsible &&