From 6e9dca5947288e49834396b99006d3467b9a7e1a Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Thu, 22 Feb 2024 15:13:35 +0400 Subject: [PATCH] Top Toolbar: Fix 'collapsed' state synchronization (#59267) Co-authored-by: Mamaduka Co-authored-by: t-hamano Co-authored-by: jeryj --- packages/edit-post/src/components/header/index.js | 15 +++++++++------ .../src/components/header-edit-mode/index.js | 4 +++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/edit-post/src/components/header/index.js b/packages/edit-post/src/components/header/index.js index b7e42d0217eef..62a6a462d8dd1 100644 --- a/packages/edit-post/src/components/header/index.js +++ b/packages/edit-post/src/components/header/index.js @@ -61,7 +61,7 @@ function Header( { setEntitiesSavedStatesCallback, initialPost } ) { const blockToolbarRef = useRef(); const { isTextEditor, - hasBlockSelection, + blockSelectionStart, hasActiveMetaboxes, hasFixedToolbar, isPublishSidebarOpened, @@ -73,8 +73,8 @@ function Header( { setEntitiesSavedStatesCallback, initialPost } ) { return { isTextEditor: getEditorMode() === 'text', - hasBlockSelection: - !! select( blockEditorStore ).getBlockSelectionStart(), + blockSelectionStart: + select( blockEditorStore ).getBlockSelectionStart(), hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(), hasHistory: !! select( editorStore ).getEditorSettings() @@ -88,13 +88,14 @@ function Header( { setEntitiesSavedStatesCallback, initialPost } ) { const [ isBlockToolsCollapsed, setIsBlockToolsCollapsed ] = useState( true ); + const hasBlockSelection = !! blockSelectionStart; useEffect( () => { // If we have a new block selection, show the block tools - if ( hasBlockSelection ) { + if ( blockSelectionStart ) { setIsBlockToolsCollapsed( false ); } - }, [ hasBlockSelection ] ); + }, [ blockSelectionStart ] ); return (
@@ -121,7 +122,9 @@ function Header( { setEntitiesSavedStatesCallback, initialPost } ) { className={ classnames( 'selected-block-tools-wrapper', { - 'is-collapsed': isBlockToolsCollapsed, + 'is-collapsed': + isBlockToolsCollapsed || + ! hasBlockSelection, } ) } > diff --git a/packages/edit-site/src/components/header-edit-mode/index.js b/packages/edit-site/src/components/header-edit-mode/index.js index 5b8b44f63efe7..daacf7b4df21e 100644 --- a/packages/edit-site/src/components/header-edit-mode/index.js +++ b/packages/edit-site/src/components/header-edit-mode/index.js @@ -134,7 +134,9 @@ export default function HeaderEditMode() { className={ classnames( 'selected-block-tools-wrapper', { - 'is-collapsed': isBlockToolsCollapsed, + 'is-collapsed': + isBlockToolsCollapsed || + ! hasBlockSelected, } ) } >