From 8da3a6a0f90a0e8acb1ab332fdd705709d37642b Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Tue, 23 Mar 2021 15:19:25 -0400 Subject: [PATCH 01/43] clickthrough for template part --- .../components/block-list/insertion-point.js | 6 ++- packages/block-editor/src/store/actions.js | 12 ++++++ packages/block-editor/src/store/reducer.js | 11 ++++++ packages/block-editor/src/store/selectors.js | 4 ++ .../src/template-part/edit/index.js | 12 +++++- .../src/template-part/edit/inner-blocks.js | 38 ++++++++++++++++--- .../src/template-part/editor.scss | 10 +++++ 7 files changed, 85 insertions(+), 8 deletions(-) diff --git a/packages/block-editor/src/components/block-list/insertion-point.js b/packages/block-editor/src/components/block-list/insertion-point.js index d759d568efd3e9..d71e80373c7657 100644 --- a/packages/block-editor/src/components/block-list/insertion-point.js +++ b/packages/block-editor/src/components/block-list/insertion-point.js @@ -262,6 +262,7 @@ export default function useInsertionPoint( ref ) { selectedClientId, selectedRootClientId, getBlockListSettings, + isInsertionPointDisabled, } = useSelect( ( select ) => { const { isMultiSelecting: _isMultiSelecting, @@ -269,6 +270,7 @@ export default function useInsertionPoint( ref ) { getBlockInsertionPoint, getBlockOrder, getBlockListSettings: _getBlockListSettings, + __experimentalIsInsertionPointDisabled, } = select( blockEditorStore ); const insertionPoint = getBlockInsertionPoint(); @@ -280,6 +282,7 @@ export default function useInsertionPoint( ref ) { isInserterVisible: isBlockInsertionPointVisible(), selectedClientId: order[ insertionPoint.index - 1 ], selectedRootClientId: insertionPoint.rootClientId, + isInsertionPointDisabled: __experimentalIsInsertionPointDisabled(), }; }, [] ); @@ -388,7 +391,8 @@ export default function useInsertionPoint( ref ) { return ( ! isMultiSelecting && - isVisible && ( + isVisible && + ! isInsertionPointDisabled && ( { const { getEditedEntityRecord, hasFinishedResolution } = select( coreStore ); - const { getBlocks } = select( blockEditorStore ); + const { + getBlocks, + isBlockSelected, + hasSelectedInnerBlock, + } = select( blockEditorStore ); const getEntityArgs = [ 'postType', @@ -69,6 +73,9 @@ export default function TemplatePartEdit( { isResolved: hasResolvedEntity, isMissing: hasResolvedEntity && ! entityRecord, area: entityRecord?.area, + isSelected: + isBlockSelected( clientId ) || + hasSelectedInnerBlock( clientId, true ), }; }, [ templatePartId, clientId ] @@ -157,6 +164,7 @@ export default function TemplatePartEdit( { ) } { isEntityAvailable && ( { - const { getSettings } = select( blockEditorStore ); - return getSettings()?.supportsLayout; + const { themeSupportsLayout } = useSelect( ( select ) => { + const { getSettings, getBlockInsertionPoint } = select( + blockEditorStore + ); + return { + themeSupportsLayout: getSettings()?.supportsLayout, + insertionPoint: getBlockInsertionPoint(), + }; }, [] ); const defaultLayout = useEditorFeature( 'layout' ) || {}; const usedLayout = !! layout && layout.inherit ? defaultLayout : layout; @@ -46,5 +53,26 @@ export default function TemplatePartInnerBlocks( { alignments: themeSupportsLayout ? alignments : undefined, }, } ); - return ; + + const [ isHovered, setIsHovered ] = useState( false ); + const { disableInsertionPoint, enableInsertionPoint } = useDispatch( + blockEditorStore + ); + + useEffect( () => { + if ( isHovered && ! isSelected ) { + disableInsertionPoint(); + } else { + enableInsertionPoint(); + } + }, [ isSelected, isHovered ] ); + + return ( +
setIsHovered( true ) } + onMouseLeave={ () => setIsHovered( false ) } + > + +
+ ); } diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss index c61e0651ae7251..a34b5ed9bab4a5 100644 --- a/packages/block-library/src/template-part/editor.scss +++ b/packages/block-library/src/template-part/editor.scss @@ -76,4 +76,14 @@ } } } + + &:not(.has-child-selected):not(.is-selected):not(.is-placeholder) { + * { + pointer-events: none; + } + &:hover { + background-color: $alert-green; + cursor: pointer; + } + } } From 6cbfb213fb167368f70908540cac6b66a7a3657d Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Tue, 23 Mar 2021 17:04:32 -0400 Subject: [PATCH 02/43] make store names more consistent and accurate --- .../src/components/block-list/insertion-point.js | 8 ++++---- packages/block-editor/src/store/actions.js | 8 ++++---- packages/block-editor/src/store/reducer.js | 8 ++++---- packages/block-editor/src/store/selectors.js | 4 ++-- .../src/template-part/edit/inner-blocks.js | 11 ++++++----- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/packages/block-editor/src/components/block-list/insertion-point.js b/packages/block-editor/src/components/block-list/insertion-point.js index d71e80373c7657..fb1f1f340b1fde 100644 --- a/packages/block-editor/src/components/block-list/insertion-point.js +++ b/packages/block-editor/src/components/block-list/insertion-point.js @@ -262,7 +262,7 @@ export default function useInsertionPoint( ref ) { selectedClientId, selectedRootClientId, getBlockListSettings, - isInsertionPointDisabled, + isPopoverHidden, } = useSelect( ( select ) => { const { isMultiSelecting: _isMultiSelecting, @@ -270,7 +270,7 @@ export default function useInsertionPoint( ref ) { getBlockInsertionPoint, getBlockOrder, getBlockListSettings: _getBlockListSettings, - __experimentalIsInsertionPointDisabled, + isInsertionPointPopoverHidden, } = select( blockEditorStore ); const insertionPoint = getBlockInsertionPoint(); @@ -282,7 +282,7 @@ export default function useInsertionPoint( ref ) { isInserterVisible: isBlockInsertionPointVisible(), selectedClientId: order[ insertionPoint.index - 1 ], selectedRootClientId: insertionPoint.rootClientId, - isInsertionPointDisabled: __experimentalIsInsertionPointDisabled(), + isPopoverHidden: isInsertionPointPopoverHidden(), }; }, [] ); @@ -392,7 +392,7 @@ export default function useInsertionPoint( ref ) { return ( ! isMultiSelecting && isVisible && - ! isInsertionPointDisabled && ( + ! isPopoverHidden && ( { if ( isHovered && ! isSelected ) { - disableInsertionPoint(); + hideInsertionPointPopover(); } else { - enableInsertionPoint(); + showInsertionPointPopover(); } }, [ isSelected, isHovered ] ); From 89f6cb82ffa8f9a2275f9d789cd77fd637da0ec4 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Tue, 23 Mar 2021 17:07:43 -0400 Subject: [PATCH 03/43] remove unnecessary selector change --- .../src/template-part/edit/inner-blocks.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/block-library/src/template-part/edit/inner-blocks.js b/packages/block-library/src/template-part/edit/inner-blocks.js index 4b905379bd9deb..272f5e33a0cc84 100644 --- a/packages/block-library/src/template-part/edit/inner-blocks.js +++ b/packages/block-library/src/template-part/edit/inner-blocks.js @@ -19,14 +19,9 @@ export default function TemplatePartInnerBlocks( { blockProps, isSelected, } ) { - const { themeSupportsLayout } = useSelect( ( select ) => { - const { getSettings, getBlockInsertionPoint } = select( - blockEditorStore - ); - return { - themeSupportsLayout: getSettings()?.supportsLayout, - insertionPoint: getBlockInsertionPoint(), - }; + const themeSupportsLayout = useSelect( ( select ) => { + const { getSettings } = select( blockEditorStore ); + return getSettings()?.supportsLayout; }, [] ); const defaultLayout = useEditorFeature( 'layout' ) || {}; const usedLayout = !! layout && layout.inherit ? defaultLayout : layout; From 9b685c0e20eebea883d4eda2de777ac787b81069 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Wed, 24 Mar 2021 11:27:27 -0400 Subject: [PATCH 04/43] move color from hover to selected, add opacity value --- packages/block-library/src/template-part/editor.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss index a34b5ed9bab4a5..09b436578f1c8d 100644 --- a/packages/block-library/src/template-part/editor.scss +++ b/packages/block-library/src/template-part/editor.scss @@ -82,8 +82,11 @@ pointer-events: none; } &:hover { - background-color: $alert-green; cursor: pointer; } } + + &.is-selected:not(.is-placeholder) { + background: rgba($alert-green, 0.1); + } } From 51b0a9fdb61209a72eed62351fe26153725100c5 Mon Sep 17 00:00:00 2001 From: James Koster Date: Thu, 8 Apr 2021 09:50:22 +0100 Subject: [PATCH 05/43] Add hover overlay --- packages/block-library/src/template-part/editor.scss | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss index 09b436578f1c8d..62492385df7be2 100644 --- a/packages/block-library/src/template-part/editor.scss +++ b/packages/block-library/src/template-part/editor.scss @@ -80,13 +80,15 @@ &:not(.has-child-selected):not(.is-selected):not(.is-placeholder) { * { pointer-events: none; - } - &:hover { - cursor: pointer; + user-select: none; // Stops text being inadvertently highlighted when selecting a template part } } &.is-selected:not(.is-placeholder) { - background: rgba($alert-green, 0.1); + background: rgba(#007cba, 0.1); // todo: use var + } + + &.is-hovered:not(.is-selected) { + background: rgba($gray-900, 0.05); } } From e16a091114c77d9f816a23c992750c4d014187d3 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Thu, 22 Apr 2021 13:18:47 -0400 Subject: [PATCH 06/43] bleh resizing issues --- .../src/template-part/edit/content-lock.js | 62 +++++++++++++++++++ .../src/template-part/edit/inner-blocks.js | 37 ++++++----- .../src/template-part/editor.scss | 36 ++++++++--- 3 files changed, 110 insertions(+), 25 deletions(-) create mode 100644 packages/block-library/src/template-part/edit/content-lock.js diff --git a/packages/block-library/src/template-part/edit/content-lock.js b/packages/block-library/src/template-part/edit/content-lock.js new file mode 100644 index 00000000000000..7d7e9f2e5b25c7 --- /dev/null +++ b/packages/block-library/src/template-part/edit/content-lock.js @@ -0,0 +1,62 @@ +/** + * WordPress dependencies + */ +import { useSelect } from '@wordpress/data'; +import { store as blockEditorStore } from '@wordpress/block-editor'; +import { useRef, useEffect, useState } from '@wordpress/element'; + +export default function ContentLock( { clientId, children } ) { + const wrapperRef = useRef(); + + const [ overlaySizes, setOverlaySizes ] = useState( {} ); + const { isSelected, hasChildSelected } = useSelect( + ( select ) => { + const { isBlockSelected, hasSelectedInnerBlock } = select( + blockEditorStore + ); + return { + isSelected: isBlockSelected( clientId ), + hasChildSelected: hasSelectedInnerBlock( clientId ), + }; + }, + [ clientId ] + ); + + useEffect( () => { + if ( wrapperRef.current?.clientHeight ) { + setOverlaySizes( { + height: wrapperRef.current?.clientHeight + 'px', + width: wrapperRef.current?.clientWidth + 'px', + } ); + } else { + setOverlaySizes( {} ); + } + }, [ + wrapperRef.current, + wrapperRef.current?.clientHeight, + wrapperRef.current?.clientWidth, + ] ); + + // if not selected in any way, disable children / wrap container (no color) + if ( true || ! ( isSelected || hasChildSelected ) ) { + return ( +
+
+ +
+ { children } +
+
+ ); + } + // if isSelected - wrap container (color) + disable children? | unlock button? + // if childSelected - normal ? + + return
{ children }
; +} diff --git a/packages/block-library/src/template-part/edit/inner-blocks.js b/packages/block-library/src/template-part/edit/inner-blocks.js index 272f5e33a0cc84..3f458038e78ecd 100644 --- a/packages/block-library/src/template-part/edit/inner-blocks.js +++ b/packages/block-library/src/template-part/edit/inner-blocks.js @@ -11,6 +11,11 @@ import { import { useSelect, useDispatch } from '@wordpress/data'; import { useState, useEffect } from '@wordpress/element'; +/** + * Internal dependencies + */ +import ContentLock from './content-lock'; + export default function TemplatePartInnerBlocks( { postId: id, hasInnerBlocks, @@ -49,26 +54,26 @@ export default function TemplatePartInnerBlocks( { }, } ); - const [ isHovered, setIsHovered ] = useState( false ); - const { - hideInsertionPointPopover, - showInsertionPointPopover, - } = useDispatch( blockEditorStore ); + // const [ isHovered, setIsHovered ] = useState( false ); + // const { + // hideInsertionPointPopover, + // showInsertionPointPopover, + // } = useDispatch( blockEditorStore ); - useEffect( () => { - if ( isHovered && ! isSelected ) { - hideInsertionPointPopover(); - } else { - showInsertionPointPopover(); - } - }, [ isSelected, isHovered ] ); + // useEffect( () => { + // if ( isHovered && ! isSelected ) { + // hideInsertionPointPopover(); + // } else { + // showInsertionPointPopover(); + // } + // }, [ isSelected, isHovered ] ); return ( -
setIsHovered( true ) } - onMouseLeave={ () => setIsHovered( false ) } + setIsHovered( true ) } + // onMouseLeave={ () => setIsHovered( false ) } > -
+ ); } diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss index 62492385df7be2..458171bcbb062c 100644 --- a/packages/block-library/src/template-part/editor.scss +++ b/packages/block-library/src/template-part/editor.scss @@ -77,18 +77,36 @@ } } - &:not(.has-child-selected):not(.is-selected):not(.is-placeholder) { - * { - pointer-events: none; - user-select: none; // Stops text being inadvertently highlighted when selecting a template part - } - } + // &:not(.has-child-selected):not(.is-selected):not(.is-placeholder) { + // * { + // pointer-events: none; + // user-select: none; // Stops text being inadvertently highlighted when selecting a template part + // } + // } - &.is-selected:not(.is-placeholder) { - background: rgba(#007cba, 0.1); // todo: use var - } + // &.is-selected:not(.is-placeholder) { + // background: rgba(#007cba, 0.1); // todo: use var + // } &.is-hovered:not(.is-selected) { background: rgba($gray-900, 0.05); } } + +.wp-block-template-part__content-lock { + position: relative; + + .wp-block-template-part__content-lock-overlay { + position: absolute; + top: 0; + left: 0; + background-color: rgb(0, 0, 250, 0.8); + z-index: 100; + } + .wp-block-template-part__content-lock-content-wrapper { + position: static; + // display: inline; + width: auto; + height: auto; + } +} From f27bcb2333edeb4f1fb9f5385c2d942cfde5f452 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Thu, 22 Apr 2021 14:57:24 -0400 Subject: [PATCH 07/43] kind of working... --- .../src/template-part/edit/content-lock.js | 55 +++++++++++-------- .../src/template-part/edit/index.js | 2 +- .../src/template-part/edit/inner-blocks.js | 7 ++- .../src/template-part/editor.scss | 35 +++++------- 4 files changed, 50 insertions(+), 49 deletions(-) diff --git a/packages/block-library/src/template-part/edit/content-lock.js b/packages/block-library/src/template-part/edit/content-lock.js index 7d7e9f2e5b25c7..6317d48d0513ba 100644 --- a/packages/block-library/src/template-part/edit/content-lock.js +++ b/packages/block-library/src/template-part/edit/content-lock.js @@ -1,12 +1,17 @@ /** * WordPress dependencies */ -import { useSelect } from '@wordpress/data'; +import { useSelect, useDispatch } from '@wordpress/data'; import { store as blockEditorStore } from '@wordpress/block-editor'; import { useRef, useEffect, useState } from '@wordpress/element'; +/** + * External dependencies + */ +import classnames from 'classnames'; export default function ContentLock( { clientId, children } ) { const wrapperRef = useRef(); + const baseClassName = 'wp-block-template-part__content-lock'; const [ overlaySizes, setOverlaySizes ] = useState( {} ); const { isSelected, hasChildSelected } = useSelect( @@ -16,14 +21,16 @@ export default function ContentLock( { clientId, children } ) { ); return { isSelected: isBlockSelected( clientId ), - hasChildSelected: hasSelectedInnerBlock( clientId ), + hasChildSelected: hasSelectedInnerBlock( clientId, true ), }; }, [ clientId ] ); + const selectBlock = useDispatch( blockEditorStore ).selectBlock; + useEffect( () => { - if ( wrapperRef.current?.clientHeight ) { + if ( wrapperRef.current?.clientHeight && ! hasChildSelected ) { setOverlaySizes( { height: wrapperRef.current?.clientHeight + 'px', width: wrapperRef.current?.clientWidth + 'px', @@ -35,28 +42,30 @@ export default function ContentLock( { clientId, children } ) { wrapperRef.current, wrapperRef.current?.clientHeight, wrapperRef.current?.clientWidth, + hasChildSelected, ] ); - // if not selected in any way, disable children / wrap container (no color) - if ( true || ! ( isSelected || hasChildSelected ) ) { - return ( -
-
+ const overlayClasses = classnames( `${ baseClassName }-overlay`, { + 'overlay-selected': isSelected, + 'child-selected': hasChildSelected, + } ); + const onClick = ! ( isSelected || hasChildSelected ) + ? () => selectBlock( clientId ) + : null; -
- { children } -
+ return ( +
+
+ ); } diff --git a/packages/block-library/src/template-part/edit/index.js b/packages/block-library/src/template-part/edit/index.js index 8c2e5a9aab773d..8ce6acd3889225 100644 --- a/packages/block-library/src/template-part/edit/index.js +++ b/packages/block-library/src/template-part/edit/index.js @@ -164,7 +164,7 @@ export default function TemplatePartEdit( { ) } { isEntityAvailable && ( { const { getSettings } = select( blockEditorStore ); @@ -70,8 +70,9 @@ export default function TemplatePartInnerBlocks( { return ( setIsHovered( true ) } - // onMouseLeave={ () => setIsHovered( false ) } + clientId={ clientId } + // onMouseEnter={ () => setIsHovered( true ) } + // onMouseLeave={ () => setIsHovered( false ) } > diff --git a/packages/block-library/src/template-part/editor.scss b/packages/block-library/src/template-part/editor.scss index 458171bcbb062c..9a5f879e49bc26 100644 --- a/packages/block-library/src/template-part/editor.scss +++ b/packages/block-library/src/template-part/editor.scss @@ -76,21 +76,6 @@ } } } - - // &:not(.has-child-selected):not(.is-selected):not(.is-placeholder) { - // * { - // pointer-events: none; - // user-select: none; // Stops text being inadvertently highlighted when selecting a template part - // } - // } - - // &.is-selected:not(.is-placeholder) { - // background: rgba(#007cba, 0.1); // todo: use var - // } - - &.is-hovered:not(.is-selected) { - background: rgba($gray-900, 0.05); - } } .wp-block-template-part__content-lock { @@ -100,13 +85,19 @@ position: absolute; top: 0; left: 0; - background-color: rgb(0, 0, 250, 0.8); z-index: 100; - } - .wp-block-template-part__content-lock-content-wrapper { - position: static; - // display: inline; - width: auto; - height: auto; + background: transparent; + border: none; + + &.overlay-selected { + background: rgb(#007cba, 0.1); // todo: use var + pointer-events: none; + } + &.child-selected { + display: none; + } + &:hover:not(.overlay-selected):not(.child-selected) { + background: rgba($gray-900, 0.05); + } } } From 6eb82de93c5efa620cf57645fa0e675d63baa291 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Thu, 22 Apr 2021 15:10:12 -0400 Subject: [PATCH 08/43] remove unnecessary popover goo --- .../components/block-list/insertion-point.js | 6 +---- packages/block-editor/src/store/actions.js | 12 ---------- packages/block-editor/src/store/reducer.js | 11 --------- packages/block-editor/src/store/selectors.js | 4 ---- .../src/template-part/edit/index.js | 11 ++------- .../src/template-part/edit/inner-blocks.js | 23 ++----------------- 6 files changed, 5 insertions(+), 62 deletions(-) diff --git a/packages/block-editor/src/components/block-list/insertion-point.js b/packages/block-editor/src/components/block-list/insertion-point.js index a2657f747363c7..6b7145ebb78e20 100644 --- a/packages/block-editor/src/components/block-list/insertion-point.js +++ b/packages/block-editor/src/components/block-list/insertion-point.js @@ -273,7 +273,6 @@ export default function useInsertionPoint( ref ) { selectedClientId, selectedRootClientId, getBlockListSettings, - isPopoverHidden, } = useSelect( ( select ) => { const { isMultiSelecting: _isMultiSelecting, @@ -281,7 +280,6 @@ export default function useInsertionPoint( ref ) { getBlockInsertionPoint, getBlockOrder, getBlockListSettings: _getBlockListSettings, - isInsertionPointPopoverHidden, } = select( blockEditorStore ); const insertionPoint = getBlockInsertionPoint(); @@ -293,7 +291,6 @@ export default function useInsertionPoint( ref ) { isInserterVisible: isBlockInsertionPointVisible(), selectedClientId: order[ insertionPoint.index - 1 ], selectedRootClientId: insertionPoint.rootClientId, - isPopoverHidden: isInsertionPointPopoverHidden(), }; }, [] ); @@ -402,8 +399,7 @@ export default function useInsertionPoint( ref ) { return ( ! isMultiSelecting && - isVisible && - ! isPopoverHidden && ( + isVisible && ( { const { getEditedEntityRecord, hasFinishedResolution } = select( coreStore ); - const { - getBlocks, - isBlockSelected, - hasSelectedInnerBlock, - } = select( blockEditorStore ); + const { getBlocks } = select( blockEditorStore ); const getEntityArgs = [ 'postType', @@ -73,9 +69,6 @@ export default function TemplatePartEdit( { isResolved: hasResolvedEntity, isMissing: hasResolvedEntity && ! entityRecord, area: entityRecord?.area, - isSelected: - isBlockSelected( clientId ) || - hasSelectedInnerBlock( clientId, true ), }; }, [ templatePartId, clientId ] diff --git a/packages/block-library/src/template-part/edit/inner-blocks.js b/packages/block-library/src/template-part/edit/inner-blocks.js index deb152e39f29ec..c6a81e0d337251 100644 --- a/packages/block-library/src/template-part/edit/inner-blocks.js +++ b/packages/block-library/src/template-part/edit/inner-blocks.js @@ -8,8 +8,7 @@ import { __experimentalUseEditorFeature as useEditorFeature, store as blockEditorStore, } from '@wordpress/block-editor'; -import { useSelect, useDispatch } from '@wordpress/data'; -import { useState, useEffect } from '@wordpress/element'; +import { useSelect } from '@wordpress/data'; /** * Internal dependencies @@ -54,26 +53,8 @@ export default function TemplatePartInnerBlocks( { }, } ); - // const [ isHovered, setIsHovered ] = useState( false ); - // const { - // hideInsertionPointPopover, - // showInsertionPointPopover, - // } = useDispatch( blockEditorStore ); - - // useEffect( () => { - // if ( isHovered && ! isSelected ) { - // hideInsertionPointPopover(); - // } else { - // showInsertionPointPopover(); - // } - // }, [ isSelected, isHovered ] ); - return ( - setIsHovered( true ) } - // onMouseLeave={ () => setIsHovered( false ) } - > + ); From e5d4f3f75eb89571524754445ac855115d88f118 Mon Sep 17 00:00:00 2001 From: Addison-Stavlo Date: Fri, 23 Apr 2021 10:45:52 -0400 Subject: [PATCH 09/43] fix for nested template parts and selection bleeding out of boundary --- .../src/template-part/edit/content-lock.js | 6 ++-- .../src/template-part/editor.scss | 31 +++++++++++++++++-- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/packages/block-library/src/template-part/edit/content-lock.js b/packages/block-library/src/template-part/edit/content-lock.js index 6317d48d0513ba..305cd1b1e494e3 100644 --- a/packages/block-library/src/template-part/edit/content-lock.js +++ b/packages/block-library/src/template-part/edit/content-lock.js @@ -45,7 +45,7 @@ export default function ContentLock( { clientId, children } ) { hasChildSelected, ] ); - const overlayClasses = classnames( `${ baseClassName }-overlay`, { + const classes = classnames( baseClassName, { 'overlay-selected': isSelected, 'child-selected': hasChildSelected, } ); @@ -54,9 +54,9 @@ export default function ContentLock( { clientId, children } ) { : null; return ( -
+