diff --git a/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js b/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js
index f548a4632eb35..7a5a9eb8d989e 100644
--- a/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js
+++ b/packages/block-editor/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js
@@ -10,6 +10,7 @@ import { focus } from '@wordpress/dom';
*/
import { PatternCategoryPreviews } from './pattern-category-previews';
+import { useZoomOut } from '../../../hooks/use-zoom-out';
export function PatternCategoryPreviewPanel( {
rootClientId,
@@ -29,6 +30,10 @@ export function PatternCategoryPreviewPanel( {
return () => clearTimeout( timeout );
}, [ category ] );
+ // Move to zoom out mode when this component is mounted
+ // and back to the previous mode when unmounted.
+ useZoomOut();
+
return (
{};
@@ -50,10 +49,6 @@ export function PatternCategoryPreviews( {
const [ patternSyncFilter, setPatternSyncFilter ] = useState( 'all' );
const [ patternSourceFilter, setPatternSourceFilter ] = useState( 'all' );
- // Move to zoom out mode when this component is mounted
- // and back to the previous mode when unmounted.
- useZoomOut();
-
const availableCategories = usePatternCategories(
rootClientId,
patternSourceFilter
diff --git a/packages/block-editor/src/hooks/use-zoom-out.js b/packages/block-editor/src/hooks/use-zoom-out.js
index 8c2aff8819b63..84603c0161dd4 100644
--- a/packages/block-editor/src/hooks/use-zoom-out.js
+++ b/packages/block-editor/src/hooks/use-zoom-out.js
@@ -2,7 +2,7 @@
* WordPress dependencies
*/
import { useSelect, useDispatch } from '@wordpress/data';
-import { useEffect, useRef } from '@wordpress/element';
+import { useEffect } from '@wordpress/element';
/**
* Internal dependencies
@@ -20,26 +20,15 @@ export function useZoomOut() {
};
}, [] );
- const shouldRevertInitialMode = useRef( null );
- useEffect( () => {
- // ignore changes to zoom-out mode as we explictily change to it on mount.
- if ( mode !== 'zoom-out' ) {
- shouldRevertInitialMode.current = false;
- }
- }, [ mode ] );
-
// Intentionality left without any dependency.
- // This effect should only run the first time the component is rendered.
+ // This effect should only run when the component is rendered and unmounted.
// The effect opens the zoom-out view if it is not open before when applying a style variation.
useEffect( () => {
if ( mode !== 'zoom-out' ) {
__unstableSetEditorMode( 'zoom-out' );
- shouldRevertInitialMode.current = true;
return () => {
- // if there were not mode changes revert to the initial mode when unmounting.
- if ( shouldRevertInitialMode.current ) {
- __unstableSetEditorMode( mode );
- }
+ // Revert to original mode
+ __unstableSetEditorMode( mode );
};
}
// eslint-disable-next-line react-hooks/exhaustive-deps