File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ export async function action({ request, context }: Route.ActionArgs) {
1616 let parsedOpen = open === "true" ;
1717
1818 let menuCollapse = menuCollapseContext ( context ) ;
19+ // This action is responsible for setting the menu collapse state.
20+ // Middleware is responsible for writing it to the cookie.
1921 menuCollapse . set ( category , parsedOpen ) ;
2022
2123 return parsedOpen ;
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ let cookie = createCookie("menu-collapse", {
1111 sameSite : "lax" ,
1212} ) ;
1313
14+ // Default behavior: missing categories are treated as "open" (true)
1415type MenuCollapseState = Record < string , boolean > ;
1516
1617let menuCollapseStateContext = unstable_createContext < MenuCollapseState > ( { } ) ;
Original file line number Diff line number Diff line change @@ -126,7 +126,7 @@ function MenuCategoryDetails({
126126function useMenuCollapse ( category ?: string ) {
127127 const menuCollapseState = useDocsLayoutRouteLoaderData ( ) ?. menuCollapseState ;
128128 const [ isOpen , setIsOpen ] = React . useState (
129- ( ) => menuCollapseState ?. [ category ?? "" ] ?? true ,
129+ menuCollapseState ?. [ category ?? "" ] ?? true ,
130130 ) ;
131131 const submit = useSubmit ( ) ;
132132
@@ -149,7 +149,7 @@ function useMenuCollapse(category?: string) {
149149 [ category , submit ] ,
150150 ) ;
151151
152- // Auto open the details element, necessary when navigating from the index page or a document request on a page in a collapsed menu
152+ // Auto-expand when navigating to a page within this category
153153 let { isActive } = useNavigation ( category ) ;
154154 React . useEffect ( ( ) => {
155155 if ( isActive ) {
You can’t perform that action at this time.
0 commit comments