mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-22 12:36:24 +08:00
chore(editor): at menu stays open when left right arrow keys are pressed (#10806)
Close [BS-2644](https://linear.app/affine-design/issue/BS-2644/menu-support)
This commit is contained in:
@@ -179,6 +179,14 @@ export class LinkedDocPopover extends SignalWatcher(
|
||||
createKeydownObserver({
|
||||
target: eventSource,
|
||||
signal: keydownObserverAbortController.signal,
|
||||
interceptor: (event, next) => {
|
||||
if (event.key === 'ArrowRight' || event.key === 'ArrowLeft') {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return;
|
||||
}
|
||||
next();
|
||||
},
|
||||
onInput: isComposition => {
|
||||
if (isComposition) {
|
||||
this._updateLinkedDocGroup().catch(console.error);
|
||||
|
||||
@@ -12,9 +12,9 @@ import {
|
||||
cutByKeyboard,
|
||||
pasteByKeyboard,
|
||||
pressArrowLeft,
|
||||
pressArrowRight,
|
||||
pressBackspace,
|
||||
pressEnter,
|
||||
pressEscape,
|
||||
selectAllByKeyboard,
|
||||
SHORT_KEY,
|
||||
type,
|
||||
@@ -107,7 +107,7 @@ test.describe('reference node', () => {
|
||||
);
|
||||
const { linkedDocPopover } = getLinkedDocPopover(page);
|
||||
await expect(linkedDocPopover).toBeVisible();
|
||||
await pressArrowRight(page);
|
||||
await pressEscape(page);
|
||||
await expect(linkedDocPopover).toBeHidden();
|
||||
await type(page, '@');
|
||||
await expect(linkedDocPopover).toBeVisible();
|
||||
@@ -382,11 +382,6 @@ test.describe('linked page popover', () => {
|
||||
await page.keyboard.press('Escape');
|
||||
await expect(linkedDocPopover).toBeHidden();
|
||||
|
||||
await type(page, '@');
|
||||
await expect(linkedDocPopover).toBeVisible();
|
||||
await page.keyboard.press('ArrowRight');
|
||||
await expect(linkedDocPopover).toBeHidden();
|
||||
|
||||
await type(page, '@');
|
||||
await expect(linkedDocPopover).toBeVisible();
|
||||
await copyByKeyboard(page);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
import { test } from '@affine-test/kit/playwright';
|
||||
import { openHomePage } from '@affine-test/kit/utils/load-page';
|
||||
import {
|
||||
clickNewPageButton,
|
||||
type,
|
||||
waitForEditorLoad,
|
||||
} from '@affine-test/kit/utils/page-logic';
|
||||
import { expect } from '@playwright/test';
|
||||
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await openHomePage(page);
|
||||
await clickNewPageButton(page);
|
||||
await waitForEditorLoad(page);
|
||||
});
|
||||
|
||||
test('at menu should not be close when press arrow key', async ({ page }) => {
|
||||
await page.keyboard.press('Enter');
|
||||
await type(page, '@');
|
||||
|
||||
const atMenu = page.locator('.linked-doc-popover');
|
||||
await expect(atMenu).toBeVisible();
|
||||
|
||||
await page.keyboard.press('ArrowRight');
|
||||
await expect(atMenu).toBeVisible();
|
||||
|
||||
await page.keyboard.press('ArrowLeft');
|
||||
await expect(atMenu).toBeVisible();
|
||||
});
|
||||
Reference in New Issue
Block a user