@@ -296,57 +296,61 @@ function DocSidebar({
296
296
useDocStateContext ( ) ;
297
297
const windowSize = useWindowSize ( ) ;
298
298
299
- useLockBodyScroll ( mobileSidebarOpen ) ;
299
+ const shouldLoadSidebar =
300
+ windowSize === windowSizes . mobile && mobileSidebarLoaded ;
300
301
301
- if ( windowSize === windowSizes . mobile && ! mobileSidebarLoaded )
302
- return < div > </ div > ;
302
+ useLockBodyScroll ( mobileSidebarOpen ) ;
303
303
304
304
return (
305
- < aside
306
- { ...props }
307
- className = { clsx ( styles . sidebar , {
308
- [ props . className ] : Boolean ( props . className ) ,
309
- [ styles . sidebarHidden ] : isHidden ,
310
- } ) }
311
- >
312
- < nav
313
- className = { clsx (
314
- 'menu' ,
315
- 'menu--responsive' ,
316
- 'thin-scrollbar' ,
317
- styles . menu ,
318
- {
319
- 'menu--show' : mobileSidebarOpen ,
320
- [ styles . menuWithAnnouncementBar ] :
321
- ! isAnnouncementBarClosed && showAnnouncementBar ,
322
- } ,
323
- ) }
324
- aria-label = { translate ( {
325
- id : 'theme.docs.sidebar.navAriaLabel' ,
326
- message : 'Sidebar navigation' ,
327
- description : 'The ARIA label for documentation menu' ,
328
- } ) }
329
- >
330
- < div className = { clsx ( styles . sidebarStart , 'doc-sidebar__start' ) } >
331
- < Link to = { homePath } >
332
- < Logo tabIndex = { - 1 } className = { styles . sidebarLogo } />
333
- </ Link >
334
- < VersionSelector />
335
- </ div >
336
- < div className = { clsx ( styles . sidebarEnd , 'doc-sidebar__end' ) } >
337
- < FrameworkSelector className = { styles . frameworkSelector } />
338
- < ul className = { clsx ( 'menu__list' , styles . menuList ) } >
339
- < DocSidebarItems
340
- items = { sidebar }
341
- onItemClick = { ( ) => setMobileSidebarOpen ( false ) }
342
- collapsible = { sidebarCollapsible }
343
- activePath = { path }
344
- />
345
- </ ul >
346
- </ div >
347
- </ nav >
348
- { hideableSidebar && < HideableSidebarButton onClick = { onCollapse } /> }
349
- </ aside >
305
+ < >
306
+ { shouldLoadSidebar && (
307
+ < aside
308
+ { ...props }
309
+ className = { clsx ( styles . sidebar , {
310
+ [ props . className ] : Boolean ( props . className ) ,
311
+ [ styles . sidebarHidden ] : isHidden ,
312
+ } ) }
313
+ >
314
+ < nav
315
+ className = { clsx (
316
+ 'menu' ,
317
+ 'menu--responsive' ,
318
+ 'thin-scrollbar' ,
319
+ styles . menu ,
320
+ {
321
+ 'menu--show' : mobileSidebarOpen ,
322
+ [ styles . menuWithAnnouncementBar ] :
323
+ ! isAnnouncementBarClosed && showAnnouncementBar ,
324
+ } ,
325
+ ) }
326
+ aria-label = { translate ( {
327
+ id : 'theme.docs.sidebar.navAriaLabel' ,
328
+ message : 'Sidebar navigation' ,
329
+ description : 'The ARIA label for documentation menu' ,
330
+ } ) }
331
+ >
332
+ < div className = { clsx ( styles . sidebarStart , 'doc-sidebar__start' ) } >
333
+ < Link to = { homePath } >
334
+ < Logo tabIndex = { - 1 } className = { styles . sidebarLogo } />
335
+ </ Link >
336
+ < VersionSelector />
337
+ </ div >
338
+ < div className = { clsx ( styles . sidebarEnd , 'doc-sidebar__end' ) } >
339
+ < FrameworkSelector className = { styles . frameworkSelector } />
340
+ < ul className = { clsx ( 'menu__list' , styles . menuList ) } >
341
+ < DocSidebarItems
342
+ items = { sidebar }
343
+ onItemClick = { ( ) => setMobileSidebarOpen ( false ) }
344
+ collapsible = { sidebarCollapsible }
345
+ activePath = { path }
346
+ />
347
+ </ ul >
348
+ </ div >
349
+ </ nav >
350
+ { hideableSidebar && < HideableSidebarButton onClick = { onCollapse } /> }
351
+ </ aside >
352
+ ) }
353
+ </ >
350
354
) ;
351
355
}
352
356
0 commit comments