@@ -227,19 +227,19 @@ export const useAppLayout = (
227
227
const navigationFocusControl = useAsyncFocusControl ( navigationOpen , navigationTriggerHide ) ;
228
228
const splitPanelFocusControl = useSplitPanelFocusControl ( [ splitPanelPreferences , splitPanelOpen ] ) ;
229
229
230
- const onNavigationToggle = useStableCallback ( ( open : boolean ) => {
230
+ const onNavigationToggle = useStableCallback ( ( { isOpen , autoFocus } : { isOpen : boolean ; autoFocus : boolean } ) => {
231
231
setNavigationAnimationDisabled ( false ) ;
232
- navigationFocusControl . setFocus ( ) ;
233
- fireNonCancelableEvent ( onNavigationChange , { open } ) ;
232
+ navigationFocusControl . setFocus ( { force : false , autoFocus } ) ;
233
+ fireNonCancelableEvent ( onNavigationChange , { open : isOpen } ) ;
234
234
} ) ;
235
235
236
236
useImperativeHandle ( forwardRef , ( ) => ( {
237
- closeNavigationIfNecessary : ( ) => isMobile && onNavigationToggle ( false ) ,
237
+ closeNavigationIfNecessary : ( ) => isMobile && onNavigationToggle ( { isOpen : false , autoFocus : true } ) ,
238
238
openTools : ( ) => onToolsToggle ( true ) ,
239
- focusToolsClose : ( ) => drawersFocusControl . setFocus ( true ) ,
240
- focusActiveDrawer : ( ) => drawersFocusControl . setFocus ( true ) ,
239
+ focusToolsClose : ( ) => drawersFocusControl . setFocus ( { force : true } ) ,
240
+ focusActiveDrawer : ( ) => drawersFocusControl . setFocus ( { force : true } ) ,
241
241
focusSplitPanel : ( ) => splitPanelFocusControl . setLastInteraction ( { type : 'open' } ) ,
242
- focusNavigation : ( ) => navigationFocusControl . setFocus ( true ) ,
242
+ focusNavigation : ( ) => navigationFocusControl . setFocus ( { force : true } ) ,
243
243
} ) ) ;
244
244
245
245
const resolvedStickyNotifications = ! ! stickyNotifications && ! isMobile ;
@@ -322,7 +322,7 @@ export const useAppLayout = (
322
322
setToolbarHeight,
323
323
setNotificationsHeight,
324
324
onSplitPanelToggle : onSplitPanelToggleHandler ,
325
- onNavigationToggle,
325
+ onNavigationToggle : isOpen => onNavigationToggle ( { isOpen , autoFocus : true } ) ,
326
326
onActiveDrawerChange : onActiveDrawerChangeHandler ,
327
327
onActiveDrawerResize,
328
328
splitPanelAnimationDisabled,
@@ -377,7 +377,7 @@ export const useAppLayout = (
377
377
useEffect ( ( ) => {
378
378
// Close navigation drawer on mobile so that the main content is visible
379
379
if ( isMobile ) {
380
- onNavigationToggle ( false ) ;
380
+ onNavigationToggle ( { isOpen : false , autoFocus : false } ) ;
381
381
}
382
382
// eslint-disable-next-line react-hooks/exhaustive-deps
383
383
} , [ isMobile ] ) ;
@@ -414,7 +414,7 @@ export const useAppLayout = (
414
414
const hasHorizontalScroll = scrollWidth > placement . inlineSize ;
415
415
if ( hasHorizontalScroll ) {
416
416
if ( ! navigationHide && navigationOpen ) {
417
- onNavigationToggle ( false ) ;
417
+ onNavigationToggle ( { isOpen : false , autoFocus : false } ) ;
418
418
return ;
419
419
}
420
420
0 commit comments