From 29fdbb710527b2db74bf20b706a42bcae06eb24a Mon Sep 17 00:00:00 2001 From: Flrande <1978616327@qq.com> Date: Mon, 24 Mar 2025 03:53:16 +0000 Subject: [PATCH] fix(editor): disable popover when start with space (#11092) --- .../widgets/linked-doc/linked-doc-popover.ts | 2 +- tests/blocksuite/e2e/linked-page.spec.ts | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/blocksuite/affine/blocks/block-root/src/widgets/linked-doc/linked-doc-popover.ts b/blocksuite/affine/blocks/block-root/src/widgets/linked-doc/linked-doc-popover.ts index 51aa9e8f08..b36ff8b47f 100644 --- a/blocksuite/affine/blocks/block-root/src/widgets/linked-doc/linked-doc-popover.ts +++ b/blocksuite/affine/blocks/block-root/src/widgets/linked-doc/linked-doc-popover.ts @@ -55,7 +55,7 @@ export class LinkedDocPopover extends SignalWatcher( } this._updateLinkedDocGroupAbortController = new AbortController(); - if (query === null) { + if (query === null || query.startsWith(' ')) { this.context.close(); return; } diff --git a/tests/blocksuite/e2e/linked-page.spec.ts b/tests/blocksuite/e2e/linked-page.spec.ts index 7747ccf959..cd54e221f5 100644 --- a/tests/blocksuite/e2e/linked-page.spec.ts +++ b/tests/blocksuite/e2e/linked-page.spec.ts @@ -133,6 +133,23 @@ test.describe('reference node', () => { await expect(linkedDocPopover).toBeHidden(); }); + test('close doc popover when start with space', async ({ page }) => { + await enterPlaygroundRoom(page); + await initEmptyParagraphState(page); + await focusRichText(page); + await type(page, '@d'); + const { linkedDocPopover } = getLinkedDocPopover(page); + await expect(linkedDocPopover).toBeVisible(); + await pressBackspace(page); + await expect(linkedDocPopover).toBeVisible(); + await type(page, ' '); + await expect(linkedDocPopover).toBeHidden(); + await type(page, '@'); + await expect(linkedDocPopover).toBeVisible(); + await type(page, ' '); + await expect(linkedDocPopover).toBeHidden(); + }); + test('should reference node attributes correctly', async ({ page, }, testInfo) => {