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, 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 &&