From 4cf4504dfb209635ec623393b5de0f5f1ed6589c Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Fri, 10 May 2024 22:18:17 +0400 Subject: [PATCH 1/2] List View: Account for text fields in shortcut handler --- packages/block-editor/src/components/list-view/block.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/block-editor/src/components/list-view/block.js b/packages/block-editor/src/components/list-view/block.js index b9d4c6c438c56..2f6c7516da3bf 100644 --- a/packages/block-editor/src/components/list-view/block.js +++ b/packages/block-editor/src/components/list-view/block.js @@ -30,6 +30,7 @@ import { BACKSPACE, DELETE } from '@wordpress/keycodes'; import isShallowEqual from '@wordpress/is-shallow-equal'; import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts'; import { speak } from '@wordpress/a11y'; +import { isTextField } from '@wordpress/dom'; /** * Internal dependencies @@ -181,6 +182,11 @@ function ListViewBlock( { return; } + // Retain the default behavior for text fields. + if ( isTextField( event.target ) ) { + return; + } + // If multiple blocks are selected, deselect all blocks when the user // presses the escape key. if ( From fc44acd1d0df01e36cb51bbf332877c20f82c915 Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Sat, 11 May 2024 12:41:42 +0400 Subject: [PATCH 2/2] Update and fix e2e tests --- .../editor/various/block-renaming.spec.js | 44 ++++++++----------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/test/e2e/specs/editor/various/block-renaming.spec.js b/test/e2e/specs/editor/various/block-renaming.spec.js index c7304023b970c..6dc1e9a3a49f4 100644 --- a/test/e2e/specs/editor/various/block-renaming.spec.js +++ b/test/e2e/specs/editor/various/block-renaming.spec.js @@ -36,26 +36,10 @@ test.describe( 'Block Renaming', () => { page, pageUtils, } ) => { - // Turn on block list view by default. - await editor.setPreferences( 'core', { - showListViewByDefault: true, - } ); - - const listView = page.getByRole( 'treegrid', { - name: 'Block navigation structure', - } ); - - await editor.insertBlock( { - name: 'core/group', - attributes: { content: 'First Paragraph' }, - } ); + await editor.insertBlock( { name: 'core/group' } ); // Select via keyboard. await pageUtils.pressKeys( 'primary+a' ); - - // Convert to a Group block which supports renaming. - await editor.clickBlockOptionsMenuItem( 'Group' ); - await editor.clickBlockOptionsMenuItem( 'Rename' ); const renameMenuItem = page.getByRole( 'menuitem', { @@ -107,11 +91,18 @@ test.describe( 'Block Renaming', () => { 'false' ); - // Check custom name reflected in List View. - listView.getByRole( 'link', { - name: 'My new name', + await pageUtils.pressKeys( 'access+o' ); + const listView = page.getByRole( 'treegrid', { + name: 'Block navigation structure', } ); + await expect( + listView.getByRole( 'link', { + name: 'My new name', + } ), + 'should reflect custom name in List View' + ).toBeVisible(); + await expect.poll( editor.getBlocks ).toMatchObject( [ { name: 'core/group', @@ -123,7 +114,8 @@ test.describe( 'Block Renaming', () => { }, ] ); - // Re-trigger the rename dialog. + // Re-trigger the rename dialog from the List View. + await listView.getByRole( 'button', { name: 'Options' } ).click(); await renameMenuItem.click(); // Expect modal input to contain the custom name. @@ -142,10 +134,12 @@ test.describe( 'Block Renaming', () => { await saveButton.click(); - // Check the original block name to reflected in List View. - listView.getByRole( 'link', { - name: 'Group', - } ); + await expect( + listView.getByRole( 'link', { + name: 'Group', + } ), + 'should reflect original name in List View' + ).toBeVisible(); // Expect block to have no custom name (i.e. it should be reset to the original block name). await expect.poll( editor.getBlocks ).toMatchObject( [