From db5d32e37984bf77fba7250f0dc0179b9715add3 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Sun, 10 Apr 2022 18:10:18 +0100 Subject: [PATCH] Prevent unwanted 'flash' of 'expanded' button It's necessary to manually toggle 'isDefaultView' off to prevent a 'flash' of the 'expanded' default button displaying when a replaceable block is deselected. --- .../src/components/inserter/index.native.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/block-editor/src/components/inserter/index.native.js b/packages/block-editor/src/components/inserter/index.native.js index 5d20ee7a9ba6e5..58d59c1a00afd4 100644 --- a/packages/block-editor/src/components/inserter/index.native.js +++ b/packages/block-editor/src/components/inserter/index.native.js @@ -22,6 +22,7 @@ import { insertBefore, } from '@wordpress/icons'; import { setBlockTypeImpressions } from '@wordpress/react-native-bridge'; +import { store as editPostStore } from '@wordpress/edit-post'; /** * Internal dependencies @@ -175,7 +176,20 @@ export class Inserter extends Component { } onToggle( isOpen ) { - const { blockTypeImpressions, onToggle, updateSettings } = this.props; + const { + blockTypeImpressions, + onToggle, + updateSettings, + toggleFeature, + } = this.props; + const { shouldReplaceBlock } = this.state; + + // It's necessary to manually toggle 'isDefaultView' off to prevent + // a 'flash' of the 'expanded' default button displaying when a + // replaceable block is deselected. + if ( shouldReplaceBlock ) { + toggleFeature( 'isDefaultView' ); + } if ( ! isOpen ) { const impressionsRemain = Object.values( @@ -358,7 +372,8 @@ export class Inserter extends Component { export default compose( [ withDispatch( ( dispatch ) => { const { updateSettings } = dispatch( blockEditorStore ); - return { updateSettings }; + const { toggleFeature } = dispatch( editPostStore ); + return { updateSettings, toggleFeature }; } ), withSelect( ( select, { clientId, isAppender, rootClientId } ) => { const {