mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 02:42:25 +08:00
fix(editor): hide collpased content during dragging note (#10133)
Close [BS-2531](https://linear.app/affine-design/issue/BS-2531/%E6%8B%96%E5%8A%A8%E6%8A%98%E5%8F%A0%E7%9A%84note%E6%97%B6%EF%BC%8C%E4%B8%8D%E6%98%BE%E7%A4%BA%E9%9A%90%E8%97%8F%E5%86%85%E5%AE%B9), [BS-2536](https://linear.app/affine-design/issue/BS-2536/page-block%E9%A1%B6%E9%83%A8toolbar)
This commit is contained in:
@@ -5,14 +5,19 @@ import {
|
||||
createEdgelessNoteBlock,
|
||||
getEdgelessSelectedIds,
|
||||
getPageMode,
|
||||
getSelectedXYWH,
|
||||
locateEditorContainer,
|
||||
locateElementToolbar,
|
||||
locateModeSwitchButton,
|
||||
moveToView,
|
||||
resizeElementByHandle,
|
||||
toViewCoord,
|
||||
} from '@affine-test/kit/utils/editor';
|
||||
import {
|
||||
pasteByKeyboard,
|
||||
pressBackspace,
|
||||
pressEnter,
|
||||
pressEscape,
|
||||
selectAllByKeyboard,
|
||||
undoByKeyboard,
|
||||
} from '@affine-test/kit/utils/keyboard';
|
||||
@@ -27,6 +32,7 @@ import type {
|
||||
EdgelessRootBlockComponent,
|
||||
NoteBlockModel,
|
||||
} from '@blocksuite/blocks';
|
||||
import type { IVec } from '@blocksuite/global/utils';
|
||||
import { expect, type Page } from '@playwright/test';
|
||||
|
||||
const title = 'Edgeless Note Header Test';
|
||||
@@ -370,3 +376,54 @@ test.describe('edgeless note element toolbar', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('note block rendering', () => {
|
||||
test('collapsed content rendering', async ({ page }) => {
|
||||
await createEdgelessNoteBlock(page, [50, 50]);
|
||||
|
||||
await type(page, 'paragraph 1');
|
||||
for (let i = 0; i < 5; i++) {
|
||||
await pressEnter(page);
|
||||
}
|
||||
await type(page, 'paragraph 2');
|
||||
await pressEscape(page, 3);
|
||||
await clickView(page, [50, 50]);
|
||||
await resizeElementByHandle(page, [0, -50], 'bottom-right');
|
||||
const xywh = await getSelectedXYWH(page);
|
||||
const center: IVec = [xywh[0] + xywh[2] / 2, xywh[1] + xywh[3] / 2];
|
||||
|
||||
const note = page
|
||||
.locator('affine-edgeless-note')
|
||||
.getByTestId('edgeless-note-clip-container')
|
||||
.nth(1);
|
||||
|
||||
await expect(note, 'should hide collapsed content').toHaveCSS(
|
||||
'overflow-y',
|
||||
'clip'
|
||||
);
|
||||
await moveToView(page, center);
|
||||
await expect(note, 'should show collapsed content when hover').toHaveCSS(
|
||||
'overflow-y',
|
||||
'visible'
|
||||
);
|
||||
|
||||
const [x1, y1] = await toViewCoord(page, center);
|
||||
const [x2, y2] = await toViewCoord(page, [center[0], center[1] + 25]);
|
||||
const [x3, y3] = await toViewCoord(page, [center[0], center[1] + 50]);
|
||||
await page.mouse.move(x1, y1);
|
||||
await page.mouse.down();
|
||||
|
||||
await page.mouse.move(x2, y2, { steps: 10 });
|
||||
await expect(
|
||||
note,
|
||||
'should hide collapsed content during dragging'
|
||||
).toHaveCSS('overflow-y', 'clip');
|
||||
await page.mouse.move(x3, y3, { steps: 10 });
|
||||
await page.mouse.up();
|
||||
await page.mouse.move(x3, y3);
|
||||
await expect(
|
||||
note,
|
||||
'should show collapsed content when dragging is finished'
|
||||
).toHaveCSS('overflow-y', 'visible');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user