From b189ab9f2543ee261adc443734ce21a98c9886ae Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Wed, 23 Oct 2024 09:53:15 +0100 Subject: [PATCH] Fix inserter position --- .../block-tools/zoom-out-mode-inserters.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/block-editor/src/components/block-tools/zoom-out-mode-inserters.js b/packages/block-editor/src/components/block-tools/zoom-out-mode-inserters.js index 17af902bf9baf..d9c409098de65 100644 --- a/packages/block-editor/src/components/block-tools/zoom-out-mode-inserters.js +++ b/packages/block-editor/src/components/block-tools/zoom-out-mode-inserters.js @@ -15,24 +15,29 @@ import { unlock } from '../../lock-unlock'; function ZoomOutModeInserters() { const [ isReady, setIsReady ] = useState( false ); const { - hasSelection, + selectedSectionClientId, blockOrder, setInserterIsOpened, sectionRootClientId, - selectedBlockClientId, } = useSelect( ( select ) => { const { getSettings, getBlockOrder, - getSelectionStart, getSelectedBlockClientId, getSectionRootClientId, + isSectionBlock, + getParentSectionBlock, } = unlock( select( blockEditorStore ) ); const root = getSectionRootClientId(); + const selectionBlockClientId = getSelectedBlockClientId(); + const _selectedSectionClientId = + ! selectionBlockClientId || isSectionBlock( selectionBlockClientId ) + ? selectionBlockClientId + : getParentSectionBlock( selectionBlockClientId ); return { - hasSelection: !! getSelectionStart().clientId, + selectedSectionClientId: _selectedSectionClientId, blockOrder: getBlockOrder( root ), sectionRootClientId: root, setInserterIsOpened: @@ -54,13 +59,13 @@ function ZoomOutModeInserters() { }; }, [] ); - if ( ! isReady || ! hasSelection ) { + if ( ! isReady || ! selectedSectionClientId ) { return null; } - const previousClientId = selectedBlockClientId; + const previousClientId = selectedSectionClientId; const index = blockOrder.findIndex( - ( clientId ) => selectedBlockClientId === clientId + ( clientId ) => selectedSectionClientId === clientId ); const nextClientId = blockOrder[ index + 1 ];