From c7fad272d049c85f81573b7cb9447261835e6e58 Mon Sep 17 00:00:00 2001 From: yogeshbhutkar Date: Fri, 31 Jan 2025 10:20:24 +0530 Subject: [PATCH 1/4] fix: close patterns modal on insertion and focus on inserted pattern --- packages/block-editor/package.json | 1 + .../block-patterns-explorer/pattern-list.js | 4 +++- .../inserter/block-patterns-tab/index.js | 16 +++++++++++----- .../inserter/hooks/use-patterns-state.js | 9 ++++++++- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json index 2a60409071843..5c0dba10a83f2 100644 --- a/packages/block-editor/package.json +++ b/packages/block-editor/package.json @@ -55,6 +55,7 @@ "@wordpress/html-entities": "file:../html-entities", "@wordpress/i18n": "file:../i18n", "@wordpress/icons": "file:../icons", + "@wordpress/interface": "file:../interface", "@wordpress/is-shallow-equal": "file:../is-shallow-equal", "@wordpress/keyboard-shortcuts": "file:../keyboard-shortcuts", "@wordpress/keycodes": "file:../keycodes", diff --git a/packages/block-editor/src/components/inserter/block-patterns-explorer/pattern-list.js b/packages/block-editor/src/components/inserter/block-patterns-explorer/pattern-list.js index 8e5e50500ec72..8779611b45c57 100644 --- a/packages/block-editor/src/components/inserter/block-patterns-explorer/pattern-list.js +++ b/packages/block-editor/src/components/inserter/block-patterns-explorer/pattern-list.js @@ -62,7 +62,9 @@ function PatternList( { const [ patterns, , onClickPattern ] = usePatternsState( onInsertBlocks, destinationRootClientId, - selectedCategory + selectedCategory, + false, + true ); const registeredPatternCategories = useMemo( diff --git a/packages/block-editor/src/components/inserter/block-patterns-tab/index.js b/packages/block-editor/src/components/inserter/block-patterns-tab/index.js index 45db4732aa9c6..71e3d711efda0 100644 --- a/packages/block-editor/src/components/inserter/block-patterns-tab/index.js +++ b/packages/block-editor/src/components/inserter/block-patterns-tab/index.js @@ -1,10 +1,11 @@ /** * WordPress dependencies */ -import { useState } from '@wordpress/element'; import { useViewportMatch } from '@wordpress/compose'; import { Button } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; +import { useDispatch, useSelect } from '@wordpress/data'; +import { store as interfaceStore } from '@wordpress/interface'; /** * Internal dependencies @@ -16,6 +17,8 @@ import { usePatternCategories } from './use-pattern-categories'; import CategoryTabs from '../category-tabs'; import InserterNoResults from '../no-results'; +export const PATTERNS_MODAL_NAME = 'block-editor/block-patterns-explorer'; + function BlockPatternsTab( { onSelectCategory, selectedCategory, @@ -23,7 +26,10 @@ function BlockPatternsTab( { rootClientId, children, } ) { - const [ showPatternsExplorer, setShowPatternsExplorer ] = useState( false ); + const isModalActive = useSelect( ( select ) => + select( interfaceStore ).isModalActive( PATTERNS_MODAL_NAME ) + ); + const { openModal, closeModal } = useDispatch( interfaceStore ); const categories = usePatternCategories( rootClientId ); @@ -47,7 +53,7 @@ function BlockPatternsTab( {