@@ -17,7 +17,7 @@ import {
1717} from '@wordpress/editor' ;
1818import { Button , ToolbarItem } from '@wordpress/components' ;
1919import { listView , plus } from '@wordpress/icons' ;
20- import { useRef } from '@wordpress/element' ;
20+ import { useRef , useCallback } from '@wordpress/element' ;
2121import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts' ;
2222
2323/**
@@ -26,6 +26,10 @@ import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
2626import TemplateTitle from '../template-title' ;
2727import { store as editPostStore } from '../../../store' ;
2828
29+ const preventDefault = ( event ) => {
30+ event . preventDefault ( ) ;
31+ } ;
32+
2933function HeaderToolbar ( ) {
3034 const inserterButton = useRef ( ) ;
3135 const { setIsInserterOpened, setIsListViewOpened } = useDispatch (
@@ -73,6 +77,10 @@ function HeaderToolbar() {
7377 /* translators: accessibility text for the editor toolbar */
7478 const toolbarAriaLabel = __ ( 'Document tools' ) ;
7579
80+ const toggleListView = useCallback (
81+ ( ) => setIsListViewOpened ( ! isListViewOpen ) ,
82+ [ setIsListViewOpened , isListViewOpen ]
83+ ) ;
7684 const overflowItems = (
7785 < >
7886 < ToolbarItem
@@ -90,13 +98,20 @@ function HeaderToolbar() {
9098 isPressed = { isListViewOpen }
9199 /* translators: button label text should, if possible, be under 16 characters. */
92100 label = { __ ( 'List View' ) }
93- onClick = { ( ) => setIsListViewOpened ( ! isListViewOpen ) }
101+ onClick = { toggleListView }
94102 shortcut = { listViewShortcut }
95103 showTooltip = { ! showIconLabels }
96104 />
97105 </ >
98106 ) ;
99-
107+ const openInserter = useCallback ( ( ) => {
108+ if ( isInserterOpened ) {
109+ // Focusing the inserter button closes the inserter popover
110+ inserterButton . current . focus ( ) ;
111+ } else {
112+ setIsInserterOpened ( true ) ;
113+ }
114+ } , [ isInserterOpened , setIsInserterOpened ] ) ;
100115 return (
101116 < NavigableToolbar
102117 className = "edit-post-header-toolbar"
@@ -109,17 +124,8 @@ function HeaderToolbar() {
109124 className = "edit-post-header-toolbar__inserter-toggle"
110125 variant = "primary"
111126 isPressed = { isInserterOpened }
112- onMouseDown = { ( event ) => {
113- event . preventDefault ( ) ;
114- } }
115- onClick = { ( ) => {
116- if ( isInserterOpened ) {
117- // Focusing the inserter button closes the inserter popover
118- inserterButton . current . focus ( ) ;
119- } else {
120- setIsInserterOpened ( true ) ;
121- }
122- } }
127+ onMouseDown = { preventDefault }
128+ onClick = { openInserter }
123129 disabled = { ! isInserterEnabled }
124130 icon = { plus }
125131 /* translators: button label text should, if possible, be under 16
0 commit comments