From 29603e967280ccec22d1c733d5af1f18550157a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ella=20Van=C2=A0Durpe?= Date: Tue, 12 Feb 2019 13:11:35 +0100 Subject: [PATCH] List Block: Do not split on line breaks when multiple blocks are transformed (#13832) --- packages/block-library/src/list/index.js | 14 +++++++++++--- .../specs/blocks/__snapshots__/list.test.js.snap | 6 ++++++ packages/e2e-tests/specs/blocks/list.test.js | 15 +++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/packages/block-library/src/list/index.js b/packages/block-library/src/list/index.js index e7a6174ef2508..4137dcdf3a673 100644 --- a/packages/block-library/src/list/index.js +++ b/packages/block-library/src/list/index.js @@ -73,9 +73,17 @@ export const settings = { transform: ( blockAttributes ) => { return createBlock( 'core/list', { values: toHTMLString( { - value: join( blockAttributes.map( ( { content } ) => - replace( create( { html: content } ), /\n/g, LINE_SEPARATOR ) - ), LINE_SEPARATOR ), + value: join( blockAttributes.map( ( { content } ) => { + const value = create( { html: content } ); + + if ( blockAttributes.length > 1 ) { + return value; + } + + // When converting only one block, transform + // every line to a list item. + return replace( value, /\n/g, LINE_SEPARATOR ); + } ), LINE_SEPARATOR ), multilineTag: 'li', } ), } ); diff --git a/packages/e2e-tests/specs/blocks/__snapshots__/list.test.js.snap b/packages/e2e-tests/specs/blocks/__snapshots__/list.test.js.snap index ef176d16bb9d7..efc3b6d274373 100644 --- a/packages/e2e-tests/specs/blocks/__snapshots__/list.test.js.snap +++ b/packages/e2e-tests/specs/blocks/__snapshots__/list.test.js.snap @@ -156,6 +156,12 @@ exports[`List should insert a line break on shift+enter in a non trailing list i " `; +exports[`List should not transform lines in block when transforming multiple blocks 1`] = ` +" + +" +`; + exports[`List should outdent with children 1`] = ` " diff --git a/packages/e2e-tests/specs/blocks/list.test.js b/packages/e2e-tests/specs/blocks/list.test.js index 915c9da4f537a..ca56e691a1050 100644 --- a/packages/e2e-tests/specs/blocks/list.test.js +++ b/packages/e2e-tests/specs/blocks/list.test.js @@ -95,6 +95,21 @@ describe( 'List', () => { expect( await getEditedPostContent() ).toMatchSnapshot(); } ); + it( 'should not transform lines in block when transforming multiple blocks', async () => { + await clickBlockAppender(); + await page.keyboard.type( 'one' ); + await pressKeyWithModifier( 'shift', 'Enter' ); + await page.keyboard.type( '...' ); + await page.keyboard.press( 'Enter' ); + await page.keyboard.type( 'two' ); + await page.keyboard.down( 'Shift' ); + await page.click( '[data-type="core/paragraph"]' ); + await page.keyboard.up( 'Shift' ); + await transformBlockTo( 'List' ); + + expect( await getEditedPostContent() ).toMatchSnapshot(); + } ); + it( 'can be converted to paragraphs', async () => { await insertBlock( 'List' ); await page.keyboard.type( 'one' );