Skip to content

Commit

Permalink
fix(edgeless): drag to add note should support collapse (toeverything…
Browse files Browse the repository at this point in the history
  • Loading branch information
donteatfriedrice authored Jan 24, 2024
1 parent 02f373e commit 7dd4cbe
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 11 deletions.
13 changes: 10 additions & 3 deletions packages/blocks/src/page-block/edgeless/utils/note.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,11 @@ import {
} from '../../../_common/utils/index.js';
import type { NoteBlockModel } from '../../../note-block/note-model.js';
import type { EdgelessPageBlockComponent } from '../edgeless-page-block.js';
import { DEFAULT_NOTE_HEIGHT, DEFAULT_NOTE_WIDTH } from './consts.js';
import {
DEFAULT_NOTE_HEIGHT,
DEFAULT_NOTE_WIDTH,
NOTE_MIN_HEIGHT,
} from './consts.js';

export type NoteOptions = {
childFlavour: NoteChildrenFlavour;
Expand All @@ -35,9 +39,12 @@ export function addNote(
{ type: options.childType },
noteId
);
if (options.collapse) {
if (options.collapse && height > NOTE_MIN_HEIGHT) {
const note = page.getBlockById(noteId) as NoteBlockModel;
page.updateBlock(note, () => (note.edgeless.collapse = true));
page.updateBlock(note, () => {
note.edgeless.collapse = true;
note.edgeless.collapsedHeight = height;
});
}
edgeless.slots.edgelessToolUpdated.emit({ type: 'default' });

Expand Down
21 changes: 13 additions & 8 deletions tests/edgeless/selection.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
);
await setEdgelessTool(page, 'default');
await page.mouse.click(210, 110);
let selectedRect = await page.locator(selectedRectClass);
let selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeHidden();
// Click to start selection and hold the mouse to trigger auto panning to the left
await page.mouse.move(210, 110);

Check failure on line 218 in tests/edgeless/selection.spec.ts

View workflow job for this annotation

GitHub Actions / Playground E2E test (6)

edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges

1) edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges Error: mouse.move: Test timeout of 30000ms exceeded. 216 | await expect(selectedRect).toBeHidden(); 217 | // Click to start selection and hold the mouse to trigger auto panning to the left > 218 | await page.mouse.move(210, 110); | ^ 219 | await page.mouse.down(); 220 | await page.mouse.move(0, 210, { steps: 20 }); 221 | await page.waitForTimeout(500); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/selection.spec.ts:218:20
Expand All @@ -221,7 +222,7 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
await page.mouse.up();

// Expect to select the shape element
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeVisible();

Expand All @@ -241,7 +242,8 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
);
await setEdgelessTool(page, 'default');
await page.mouse.click(600, 100);
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeHidden();
// Click to start selection and hold the mouse to trigger auto panning to the top
await page.mouse.move(600, 100);
Expand All @@ -251,7 +253,7 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
await page.mouse.up();

// Expect to select the empty note
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeVisible();

Expand All @@ -271,7 +273,8 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
);
await setEdgelessTool(page, 'default');
await page.mouse.click(800, 600);
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(100);
await expect(selectedRect).toBeHidden();
// Click to start selection and hold the mouse to trigger auto panning to the right
await page.mouse.move(800, 600);
Expand All @@ -281,7 +284,7 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
await page.mouse.up();

// Expect to select the empty note
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeVisible();

Check failure on line 289 in tests/edgeless/selection.spec.ts

View workflow job for this annotation

GitHub Actions / Playground E2E test (6)

edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges

1) edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() Locator: locator('.affine-edgeless-selected-rect') Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.affine-edgeless-selected-rect') 287 | selectedRect = page.locator(selectedRectClass); 288 | await page.waitForTimeout(300); > 289 | await expect(selectedRect).toBeVisible(); | ^ 290 | 291 | // Panning to the bottom 292 | await page.mouse.click(400, 100); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/selection.spec.ts:289:30

Check failure on line 289 in tests/edgeless/selection.spec.ts

View workflow job for this annotation

GitHub Actions / Playground E2E test (6)

edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges

1) edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.affine-edgeless-selected-rect') Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.affine-edgeless-selected-rect') 287 | selectedRect = page.locator(selectedRectClass); 288 | await page.waitForTimeout(300); > 289 | await expect(selectedRect).toBeVisible(); | ^ 290 | 291 | // Panning to the bottom 292 | await page.mouse.click(400, 100); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/selection.spec.ts:289:30

Check failure on line 289 in tests/edgeless/selection.spec.ts

View workflow job for this annotation

GitHub Actions / Playground E2E test (6)

edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges

1) edgeless/selection.spec.ts:184:1 › should auto panning when selection rectangle reaches viewport edges Retry #3 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 5000ms waiting for expect(locator).toBeVisible() Locator: locator('.affine-edgeless-selected-rect') Expected: visible Received: hidden Call log: - expect.toBeVisible with timeout 5000ms - waiting for locator('.affine-edgeless-selected-rect') 287 | selectedRect = page.locator(selectedRectClass); 288 | await page.waitForTimeout(300); > 289 | await expect(selectedRect).toBeVisible(); | ^ 290 | 291 | // Panning to the bottom 292 | await page.mouse.click(400, 100); at /home/runner/work/blocksuite/blocksuite/tests/edgeless/selection.spec.ts:289:30

Expand All @@ -304,7 +307,8 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
);
await setEdgelessTool(page, 'default');
await page.mouse.click(700, 800);
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(100);
await expect(selectedRect).toBeHidden();

// Click to start selection and hold the mouse to trigger auto panning to the right
Expand All @@ -315,7 +319,8 @@ test('should auto panning when selection rectangle reaches viewport edges', asyn
await page.mouse.up();

// Expect to select the empty note
selectedRect = await page.locator(selectedRectClass);
selectedRect = page.locator(selectedRectClass);
await page.waitForTimeout(300);
await expect(selectedRect).toBeVisible();
});

Expand Down

0 comments on commit 7dd4cbe

Please sign in to comment.