From b80ff73aabac6b0dd33b12f701b50e09a211c4d5 Mon Sep 17 00:00:00 2001 From: ramonjd Date: Thu, 13 May 2021 18:03:21 +1000 Subject: [PATCH 1/3] Initial commit. Adding block supports for border color. Ensuring that classes and styles are added to the correct elements when the button is inside. --- packages/block-library/src/search/block.json | 1 + packages/block-library/src/search/edit.js | 51 ++++++++---- packages/block-library/src/search/index.php | 85 +++++++++++++++----- 3 files changed, 101 insertions(+), 36 deletions(-) diff --git a/packages/block-library/src/search/block.json b/packages/block-library/src/search/block.json index b96f14f53c778c..54bb6b43635bdd 100644 --- a/packages/block-library/src/search/block.json +++ b/packages/block-library/src/search/block.json @@ -42,6 +42,7 @@ "supports": { "align": [ "left", "center", "right" ], "__experimentalBorder": { + "color": true, "radius": true, "__experimentalSkipSerialization": true }, diff --git a/packages/block-library/src/search/edit.js b/packages/block-library/src/search/edit.js index e279fcb0ad002b..aea685ea1e3380 100644 --- a/packages/block-library/src/search/edit.js +++ b/packages/block-library/src/search/edit.js @@ -72,6 +72,7 @@ export default function SearchEdit( { } = attributes; const borderRadius = style?.border?.radius; + const borderColor = style?.border?.color; const borderProps = useBorderProps( attributes ); // Check for old deprecated numerical border radius. Done as a separate @@ -83,6 +84,7 @@ export default function SearchEdit( { const unitControlInstanceId = useInstanceId( UnitControl ); const unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`; + const isButtonPositionInside = 'button-inside' === buttonPosition; const units = useCustomUnits( { availableUnits: [ '%', 'px' ], @@ -92,7 +94,8 @@ export default function SearchEdit( { const getBlockClassNames = () => { return classnames( className, - 'button-inside' === buttonPosition + ! isButtonPositionInside ? borderProps.className : undefined, + isButtonPositionInside ? 'wp-block-search__button-inside' : undefined, 'button-outside' === buttonPosition @@ -174,10 +177,19 @@ export default function SearchEdit( { }; const renderTextField = () => { + const textFieldClasses = classnames( + 'wp-block-search__input', + ! isButtonPositionInside ? borderProps.className : undefined + ); + // If the button is inside the wrapper, the wrapper gets the border styles, not the input control. + const textFieldStyles = { + borderRadius: ! isButtonPositionInside ? borderRadius : undefined, + borderColor: ! isButtonPositionInside ? borderColor : undefined, + }; return ( { + const buttonClasses = classnames( + 'wp-block-search__button', + borderProps.className + ); return ( <> { buttonUseIcon && ( ', $button_classes, + '', + $button_classes, $inline_styles['shared'], $button_internal_markup ); @@ -100,7 +101,7 @@ function render_block_core_search( $attributes ) { $inline_styles['wrapper'], $input_markup . $button_markup ); -$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); return sprintf( '
%s
', From 7216b7f17de253b687fe2596ffcb692339d2119a Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 5 Jul 2021 11:29:33 +1000 Subject: [PATCH 3/3] Linting --- packages/block-library/src/search/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-library/src/search/index.php b/packages/block-library/src/search/index.php index 1e38641753a1ca..9014bf7f990a79 100644 --- a/packages/block-library/src/search/index.php +++ b/packages/block-library/src/search/index.php @@ -87,7 +87,7 @@ function render_block_core_search( $attributes ) { } $button_markup = sprintf( - '', + '', $button_classes, $inline_styles['shared'], $button_internal_markup