diff --git a/packages/block-editor/src/components/inserter/library.js b/packages/block-editor/src/components/inserter/library.js index 7d462b343c310..a3a4e7feb42b3 100644 --- a/packages/block-editor/src/components/inserter/library.js +++ b/packages/block-editor/src/components/inserter/library.js @@ -21,6 +21,7 @@ function InserterLibrary( showMostUsedBlocks = false, __experimentalInsertionIndex, __experimentalFilterValue, + __experimentalOnPatternCategorySelection, onSelect = noop, shouldFocusBlock = false, }, @@ -48,6 +49,9 @@ function InserterLibrary( showMostUsedBlocks={ showMostUsedBlocks } __experimentalInsertionIndex={ __experimentalInsertionIndex } __experimentalFilterValue={ __experimentalFilterValue } + __experimentalOnPatternCategorySelection={ + __experimentalOnPatternCategorySelection + } shouldFocusBlock={ shouldFocusBlock } ref={ ref } /> diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js index 6a38e52cbffba..9e1322f0435fe 100644 --- a/packages/block-editor/src/components/inserter/menu.js +++ b/packages/block-editor/src/components/inserter/menu.js @@ -34,6 +34,7 @@ import useInsertionPoint from './hooks/use-insertion-point'; import InserterTabs from './tabs'; import { store as blockEditorStore } from '../../store'; +const NOOP = () => {}; function InserterMenu( { rootClientId, @@ -45,6 +46,7 @@ function InserterMenu( showMostUsedBlocks, __experimentalFilterValue = '', shouldFocusBlock = true, + __experimentalOnPatternCategorySelection = NOOP, }, ref ) { @@ -110,12 +112,17 @@ function InserterMenu( [ onToggleInsertionPoint ] ); + const isZoomedOutViewExperimentEnabled = + window?.__experimentalEnableZoomedOutView; const onClickPatternCategory = useCallback( ( patternCategory, filter ) => { setSelectedPatternCategory( patternCategory ); setPatternFilter( filter ); + if ( isZoomedOutViewExperimentEnabled ) { + __experimentalOnPatternCategorySelection(); + } }, - [ setSelectedPatternCategory ] + [ setSelectedPatternCategory, __experimentalOnPatternCategorySelection ] ); const blocksTab = useMemo( diff --git a/packages/edit-post/src/components/layout/index.js b/packages/edit-post/src/components/layout/index.js index 27896946aad7c..903c6bde35dee 100644 --- a/packages/edit-post/src/components/layout/index.js +++ b/packages/edit-post/src/components/layout/index.js @@ -258,7 +258,12 @@ function Layout( { initialPost } ) { const secondarySidebar = () => { if ( mode === 'visual' && isInserterOpened ) { - return ; + return ( + + ); } if ( mode === 'visual' && isListViewOpened ) { return ; diff --git a/packages/edit-site/src/components/editor/index.js b/packages/edit-site/src/components/editor/index.js index c934aa7cf0812..ef5147c35858f 100644 --- a/packages/edit-site/src/components/editor/index.js +++ b/packages/edit-site/src/components/editor/index.js @@ -6,7 +6,7 @@ import classnames from 'classnames'; /** * WordPress dependencies */ -import { useSelect } from '@wordpress/data'; +import { useDispatch, useSelect } from '@wordpress/data'; import { Notice } from '@wordpress/components'; import { useInstanceId, useViewportMatch } from '@wordpress/compose'; import { store as preferencesStore } from '@wordpress/preferences'; @@ -174,6 +174,8 @@ export default function Editor( { isLoading, onClick } ) { 'edit-site-editor__loading-progress' ); + const { closeGeneralSidebar } = useDispatch( editSiteStore ); + const settings = useSpecificEditorSettings(); const isReady = ! isLoading && @@ -243,7 +245,12 @@ export default function Editor( { isLoading, onClick } ) { } secondarySidebar={ isEditMode && - ( ( shouldShowInserter && ) || + ( ( shouldShowInserter && ( + + ) ) || ( shouldShowListView && ) ) } sidebar={ diff --git a/packages/editor/src/components/inserter-sidebar/index.js b/packages/editor/src/components/inserter-sidebar/index.js index 7db4335309935..e2e84c2f8185c 100644 --- a/packages/editor/src/components/inserter-sidebar/index.js +++ b/packages/editor/src/components/inserter-sidebar/index.js @@ -19,7 +19,10 @@ import { store as preferencesStore } from '@wordpress/preferences'; import { unlock } from '../../lock-unlock'; import { store as editorStore } from '../../store'; -export default function InserterSidebar() { +export default function InserterSidebar( { + closeGeneralSidebar, + isRightSidebarOpen, +} ) { const { insertionPoint, showMostUsedBlocks } = useSelect( ( select ) => { const { getInsertionPoint } = unlock( select( editorStore ) ); const { get } = select( preferencesStore ); @@ -65,6 +68,9 @@ export default function InserterSidebar() { insertionPoint.insertionIndex } __experimentalFilterValue={ insertionPoint.filterValue } + __experimentalOnPatternCategorySelection={ + isRightSidebarOpen ? closeGeneralSidebar : undefined + } ref={ libraryRef } />