@@ -25,19 +25,19 @@ import type { Props } from "@theme/Page/SidebarItem/Category";
2525function useAutoExpandActiveCategory ( {
2626 isActive,
2727 collapsed,
28- setCollapsed ,
28+ updateCollapsed ,
2929} : {
3030 isActive : boolean ;
3131 collapsed : boolean ;
32- setCollapsed : ( b : boolean ) => void ;
32+ updateCollapsed : ( b : boolean ) => void ;
3333} ) {
3434 const wasActive = usePrevious ( isActive ) ;
3535 useEffect ( ( ) => {
3636 const justBecameActive = isActive && ! wasActive ;
3737 if ( justBecameActive && collapsed ) {
38- setCollapsed ( false ) ;
38+ updateCollapsed ( false ) ;
3939 }
40- } , [ isActive , wasActive , collapsed , setCollapsed ] ) ;
40+ } , [ isActive , wasActive , collapsed , updateCollapsed ] ) ;
4141}
4242
4343/**
@@ -94,12 +94,12 @@ export default function SidebarItemCategory({
9494 } ) ;
9595
9696 const { expandedItem, setExpandedItem } = useDocSidebarItemsExpandedState ( ) ;
97-
98- const updateCollapsed = ( collapsed : boolean ) => {
99- setExpandedItem ( collapsed ? null : index ) ;
100- setCollapsed ( collapsed ) ;
97+ // Use this instead of `setCollapsed`, because it is also reactive
98+ const updateCollapsed = ( toCollapsed : boolean = ! collapsed ) => {
99+ setExpandedItem ( toCollapsed ? null : index ) ;
100+ setCollapsed ( toCollapsed ) ;
101101 } ;
102-
102+ useAutoExpandActiveCategory ( { isActive , collapsed , updateCollapsed } ) ;
103103 useEffect ( ( ) => {
104104 if (
105105 collapsible &&
@@ -111,12 +111,6 @@ export default function SidebarItemCategory({
111111 }
112112 } , [ collapsible , expandedItem , index , setCollapsed , autoCollapseCategories ] ) ;
113113
114- useAutoExpandActiveCategory ( {
115- isActive,
116- collapsed,
117- setCollapsed : updateCollapsed ,
118- } ) ;
119-
120114 const subItems = (
121115 < SidebarItems level = { level + 1 } path = { activePath } items = { items } />
122116 ) ;
0 commit comments