From 2638af3106f203a4cd2a56ca92d102b3bba1f82b Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Fri, 27 Dec 2019 10:41:21 +0100 Subject: [PATCH 1/2] Remove the BlockAsyncRenderProvider and render parents asynchronously --- .../block-list/block-async-mode-provider.js | 20 ------------------- .../src/components/block-list/index.js | 9 ++------- 2 files changed, 2 insertions(+), 27 deletions(-) delete mode 100644 packages/block-editor/src/components/block-list/block-async-mode-provider.js diff --git a/packages/block-editor/src/components/block-list/block-async-mode-provider.js b/packages/block-editor/src/components/block-list/block-async-mode-provider.js deleted file mode 100644 index 6601d428cff3ed..00000000000000 --- a/packages/block-editor/src/components/block-list/block-async-mode-provider.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * WordPress dependencies - */ -import { AsyncModeProvider, useSelect } from '@wordpress/data'; - -const BlockAsyncModeProvider = ( { children, clientId, isBlockInSelection } ) => { - const isParentOfSelectedBlock = useSelect( ( select ) => { - return select( 'core/block-editor' ).hasSelectedInnerBlock( clientId, true ); - }, [ clientId ] ); - - const isSyncModeForced = isBlockInSelection || isParentOfSelectedBlock; - - return ( - - { children } - - ); -}; - -export default BlockAsyncModeProvider; diff --git a/packages/block-editor/src/components/block-list/index.js b/packages/block-editor/src/components/block-list/index.js index 8b03c0727e58e2..7de74816e07f7c 100644 --- a/packages/block-editor/src/components/block-list/index.js +++ b/packages/block-editor/src/components/block-list/index.js @@ -12,7 +12,6 @@ import { AsyncModeProvider, useSelect } from '@wordpress/data'; /** * Internal dependencies */ -import BlockAsyncModeProvider from './block-async-mode-provider'; import BlockListBlock from './block'; import BlockListAppender from '../block-list-appender'; import __experimentalBlockListFooter from '../block-list-footer'; @@ -88,11 +87,7 @@ function BlockList( { selectedBlockClientId === clientId; return ( - + - + ); } ) } Date: Thu, 2 Jan 2020 10:00:23 +0100 Subject: [PATCH 2/2] Fix e2e test --- .../inner-blocks-render-appender.test.js | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/packages/e2e-tests/specs/plugins/inner-blocks-render-appender.test.js b/packages/e2e-tests/specs/plugins/inner-blocks-render-appender.test.js index c607f2f4df2c15..fd5bec2955b116 100644 --- a/packages/e2e-tests/specs/plugins/inner-blocks-render-appender.test.js +++ b/packages/e2e-tests/specs/plugins/inner-blocks-render-appender.test.js @@ -14,7 +14,7 @@ import { const INSERTER_RESULTS_SELECTOR = '.block-editor-inserter__results'; const QUOTE_INSERT_BUTTON_SELECTOR = '//button[.="Quote"]'; const APPENDER_SELECTOR = '.my-custom-awesome-appender'; -const DYNAMIC_APPENDER_SELECTOR = '.my-dynamic-blocks-appender'; +const DYNAMIC_APPENDER_SELECTOR = 'my-dynamic-blocks-appender'; describe( 'RenderAppender prop of InnerBlocks ', () => { beforeAll( async () => { @@ -69,17 +69,15 @@ describe( 'RenderAppender prop of InnerBlocks ', () => { await insertBlock( 'InnerBlocks renderAppender dynamic' ); // Wait for the custom dynamic block appender to appear. - await page.waitForSelector( DYNAMIC_APPENDER_SELECTOR ); + await page.waitForSelector( '.' + DYNAMIC_APPENDER_SELECTOR ); // Verify if the custom block appender text is the expected one. - expect( - await page.evaluate( - ( el ) => ( el.innerText ), - await page.$( `${ DYNAMIC_APPENDER_SELECTOR } > span.empty-blocks-appender` ) ) - ).toEqual( 'Empty Blocks Appender' ); + await page.waitForXPath( + `//*[contains(@class, "${ DYNAMIC_APPENDER_SELECTOR }")]/span[contains(@class, "empty-blocks-appender")][contains(text(), "Empty Blocks Appender")]` + ); // Open the inserter of our custom block appender and expand all the categories. - const blockAppenderButtonSelector = `${ DYNAMIC_APPENDER_SELECTOR } .block-editor-button-block-appender`; + const blockAppenderButtonSelector = `.${ DYNAMIC_APPENDER_SELECTOR } .block-editor-button-block-appender`; await page.click( blockAppenderButtonSelector ); await openAllBlockInserterCategories(); @@ -99,11 +97,9 @@ describe( 'RenderAppender prop of InnerBlocks ', () => { await quoteButton.click(); // Verify if the custom block appender text changed as expected. - expect( - await page.evaluate( - ( el ) => ( el.innerText ), - await page.$( `${ DYNAMIC_APPENDER_SELECTOR } > span.single-blocks-appender` ) ) - ).toEqual( 'Single Blocks Appender' ); + await page.waitForXPath( + `//*[contains(@class, "${ DYNAMIC_APPENDER_SELECTOR }")]/span[contains(@class, "single-blocks-appender")][contains(text(), "Single Blocks Appender")]` + ); // Verify that the custom appender button is still being rendered. expect( @@ -114,11 +110,9 @@ describe( 'RenderAppender prop of InnerBlocks ', () => { await insertBlock( 'Video' ); // Verify if the custom block appender text changed as expected. - expect( - await page.evaluate( - ( el ) => ( el.innerText ), - await page.$( `${ DYNAMIC_APPENDER_SELECTOR } > span.multiple-blocks-appender` ) ) - ).toEqual( 'Multiple Blocks Appender' ); + await page.waitForXPath( + `//*[contains(@class, "${ DYNAMIC_APPENDER_SELECTOR }")]/span[contains(@class, "multiple-blocks-appender")][contains(text(), "Multiple Blocks Appender")]` + ); // Verify that the custom appender button is now not being rendered. expect(