From 89539fdc319c83520094731c2ca1ef1fd2cff380 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Fri, 9 Nov 2018 08:45:51 +0100 Subject: [PATCH] Support passing a context variable to the custom format prepareEditTreeValue (#11630) --- packages/block-library/src/heading/edit.js | 1 + packages/block-library/src/list/index.js | 1 + packages/block-library/src/paragraph/edit.js | 1 + packages/block-library/src/quote/index.js | 9 +++++++-- packages/editor/src/components/rich-text/index.js | 6 +++++- packages/rich-text/src/register-format-type.js | 15 ++++++++++++--- 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/packages/block-library/src/heading/edit.js b/packages/block-library/src/heading/edit.js index f0f02afb2579b..711f0c100e431 100644 --- a/packages/block-library/src/heading/edit.js +++ b/packages/block-library/src/heading/edit.js @@ -42,6 +42,7 @@ export default function HeadingEdit( {
{ ( ! RichText.isEmpty( citation ) || isSelected ) && ( setAttributes( { diff --git a/packages/editor/src/components/rich-text/index.js b/packages/editor/src/components/rich-text/index.js index 2408b32ca9273..a59fc64bf28b6 100644 --- a/packages/editor/src/components/rich-text/index.js +++ b/packages/editor/src/components/rich-text/index.js @@ -959,12 +959,15 @@ const RichTextContainer = compose( [ withBlockEditContext( ( context, ownProps ) => { // When explicitly set as not selected, do nothing. if ( ownProps.isSelected === false ) { - return {}; + return { + clientId: context.clientId, + }; } // When explicitly set as selected, use the value stored in the context instead. if ( ownProps.isSelected === true ) { return { isSelected: context.isSelected, + clientId: context.clientId, }; } @@ -972,6 +975,7 @@ const RichTextContainer = compose( [ return { isSelected: context.isSelected && context.focusedElement === ownProps.instanceId, setFocusedElement: context.setFocusedElement, + clientId: context.clientId, }; } ), withSelect( ( select ) => { diff --git a/packages/rich-text/src/register-format-type.js b/packages/rich-text/src/register-format-type.js index f534529b6fadc..38af31b958e90 100644 --- a/packages/rich-text/src/register-format-type.js +++ b/packages/rich-text/src/register-format-type.js @@ -118,14 +118,23 @@ export function registerFormatType( name, settings ) { settings.__experimentalGetPropsForEditableTreePreparation ) { addFilter( 'experimentalRichText', name, ( OriginalComponent ) => { - return withSelect( ( sel ) => ( { - [ `format_${ name }` ]: settings.__experimentalGetPropsForEditableTreePreparation( sel ), + return withSelect( ( sel, { clientId, identifier } ) => ( { + [ `format_${ name }` ]: settings.__experimentalGetPropsForEditableTreePreparation( + sel, + { + richTextIdentifier: identifier, + blockClientId: clientId, + } + ), } ) )( ( props ) => ( ) );