From aabb5b6ae91193071c1c8b7c53891da49e4c6f83 Mon Sep 17 00:00:00 2001 From: fantactuka Date: Fri, 28 Apr 2023 13:49:59 -0400 Subject: [PATCH] Adjustments on top of #3840 --- .../__tests__/e2e/Selection.spec.mjs | 71 ++++++++++++++++++- packages/lexical/src/LexicalSelection.ts | 2 +- 2 files changed, 70 insertions(+), 3 deletions(-) diff --git a/packages/lexical-playground/__tests__/e2e/Selection.spec.mjs b/packages/lexical-playground/__tests__/e2e/Selection.spec.mjs index ad756285ccb..858be57f83e 100644 --- a/packages/lexical-playground/__tests__/e2e/Selection.spec.mjs +++ b/packages/lexical-playground/__tests__/e2e/Selection.spec.mjs @@ -7,6 +7,7 @@ */ import { + deleteBackward, deleteForward, moveLeft, moveRight, @@ -274,11 +275,11 @@ test.describe('Selection', () => { test('Can select all with node selection', async ({page, isPlainText}) => { test.skip(isPlainText); await focusEditor(page); - await page.keyboard.type('Text before'); + await page.keyboard.type('# Text before'); await insertSampleImage(page); await page.keyboard.type('Text after'); await selectAll(page); - await page.keyboard.press('Delete'); + await deleteBackward(page); await assertHTML( page, html` @@ -353,4 +354,70 @@ test.describe('Selection', () => { `, ); }); + + test('Can delete block elements', async ({page, isPlainText}) => { + test.skip(isPlainText); + await focusEditor(page); + await page.keyboard.type('# A'); + await page.keyboard.press('Enter'); + await page.keyboard.type('b'); + await assertHTML( + page, + html` +

+ A +

+

+ b +

+ `, + ); + await moveLeft(page, 2); + + await deleteBackward(page); + await assertHTML( + page, + html` +

+
+

+

+ b +

+ `, + ); + + await deleteBackward(page); + await assertHTML( + page, + html` +

+
+

+

+ b +

+ `, + ); + + await deleteBackward(page); + await assertHTML( + page, + html` +

+ b +

+ `, + ); + }); }); diff --git a/packages/lexical/src/LexicalSelection.ts b/packages/lexical/src/LexicalSelection.ts index 040708a95d2..228b03d1450 100644 --- a/packages/lexical/src/LexicalSelection.ts +++ b/packages/lexical/src/LexicalSelection.ts @@ -2040,6 +2040,7 @@ export class RangeSelection implements BaseSelection { } deleteCharacter(isBackward: boolean): void { + const wasCollapsed = this.isCollapsed(); if (this.isCollapsed()) { const anchor = this.anchor; const focus = this.focus; @@ -2122,7 +2123,6 @@ export class RangeSelection implements BaseSelection { } } } - const wasCollapsed = this.isCollapsed(); this.removeText(); if ( isBackward &&