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 );