diff --git a/packages/block-library/src/navigation-link/edit.js b/packages/block-library/src/navigation-link/edit.js index e9e7e2aa45802..b14d681fe15f0 100644 --- a/packages/block-library/src/navigation-link/edit.js +++ b/packages/block-library/src/navigation-link/edit.js @@ -288,7 +288,9 @@ function navStripHTML( html ) { function LinkControlTransforms( { block, transforms, replace } ) { return (
-

Transform

+

+ { __( 'Transform' ) } +

{ transforms.map( ( item, index ) => { return ( diff --git a/packages/block-library/src/navigation-link/transforms.js b/packages/block-library/src/navigation-link/transforms.js index 8e6d473153f82..7b213a4805106 100644 --- a/packages/block-library/src/navigation-link/transforms.js +++ b/packages/block-library/src/navigation-link/transforms.js @@ -84,7 +84,11 @@ const transforms = { type: 'block', blocks: [ 'core/search' ], transform: () => { - return createBlock( 'core/search' ); + return createBlock( 'core/search', { + showLabel: false, + buttonUseIcon: true, + buttonPosition: 'button-inside', + } ); }, }, ], diff --git a/packages/block-library/src/search/edit.js b/packages/block-library/src/search/edit.js index 3bf965cd0f5f4..979e7f3047fa8 100644 --- a/packages/block-library/src/search/edit.js +++ b/packages/block-library/src/search/edit.js @@ -14,7 +14,10 @@ import { __experimentalUseBorderProps as useBorderProps, __experimentalUnitControl as UnitControl, __experimentalUseColorProps as useColorProps, + store as blockEditorStore, } from '@wordpress/block-editor'; +import { useDispatch, useSelect } from '@wordpress/data'; +import { useEffect } from '@wordpress/element'; import { ToolbarDropdownMenu, ToolbarGroup, @@ -58,6 +61,7 @@ export default function SearchEdit( { setAttributes, toggleSelection, isSelected, + clientId, } ) { const { label, @@ -72,6 +76,31 @@ export default function SearchEdit( { style, } = attributes; + const insertedInNavigationBlock = useSelect( + ( select ) => { + const { getBlockParentsByBlockName, wasBlockJustInserted } = select( + blockEditorStore + ); + return ( + !! getBlockParentsByBlockName( clientId, 'core/navigation' ) + ?.length && wasBlockJustInserted( clientId ) + ); + }, + [ clientId ] + ); + const { __unstableMarkNextChangeAsNotPersistent } = useDispatch( + blockEditorStore + ); + useEffect( () => { + if ( ! insertedInNavigationBlock ) return; + // This side-effect should not create an undo level. + __unstableMarkNextChangeAsNotPersistent(); + setAttributes( { + showLabel: false, + buttonUseIcon: true, + buttonPosition: 'button-inside', + } ); + }, [ insertedInNavigationBlock ] ); const borderRadius = style?.border?.radius; const borderColor = style?.border?.color; const borderProps = useBorderProps( attributes );