From c9f68120fad24b80779697fc01badd52c34c70ff Mon Sep 17 00:00:00 2001 From: Jerry Jones Date: Tue, 30 Apr 2024 17:25:25 -0500 Subject: [PATCH] Only inserter on mount --- .../src/components/inserter/menu.js | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js index 7a379db583dff..b54b4610f9a8e 100644 --- a/packages/block-editor/src/components/inserter/menu.js +++ b/packages/block-editor/src/components/inserter/menu.js @@ -6,7 +6,13 @@ import classnames from 'classnames'; /** * WordPress dependencies */ -import { forwardRef, useState, useCallback, useMemo } from '@wordpress/element'; +import { + forwardRef, + useState, + useCallback, + useMemo, + useRef, +} from '@wordpress/element'; import { VisuallyHidden, SearchControl, Popover } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; import { useSelect } from '@wordpress/data'; @@ -53,7 +59,7 @@ function InserterMenu( const [ patternFilter, setPatternFilter ] = useState( 'all' ); const [ selectedMediaCategory, setSelectedMediaCategory ] = useState( null ); - const [ selectedTab, setSelectedTab ] = useState( null ); + const [ selectedTab, setSelectedTab ] = useState( 'blocks' ); const [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] = useInsertionPoint( { @@ -231,17 +237,18 @@ function InserterMenu( setSelectedTab( value ); }; + const hasAutoFocused = useRef( false ); const searchRef = useRefEffect( ( element ) => { - if ( element ) { - element.focus(); + if ( element && hasAutoFocused.current === false ) { + hasAutoFocused.current = true; + window.requestAnimationFrame( () => element.focus() ); } - } ); + }, [] ); const inserterSearch = useMemo( () => { if ( selectedTab === 'media' ) { return null; } - return ( <>