mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 14:27:02 +08:00
fix(editor): should record edgeless connector mode (#12426)
Close [BS-3355](https://linear.app/affine-design/issue/BS-3355/白板快捷键c没有记住上次用的connector形状) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added the ability to cycle through connector modes (Curve, Orthogonal, Straight) using the 'c' keyboard shortcut when the connector tool is active. - **Bug Fixes** - Improved the logic for remembering and restoring the last used connector mode when switching between tools. - **Tests** - Introduced a new end-to-end test to verify correct cycling and restoration of connector modes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -2,15 +2,18 @@ import { expect } from '@playwright/test';
|
||||
|
||||
import {
|
||||
addBasicConnectorElement,
|
||||
assertEdgelessConnectorToolMode,
|
||||
changeConnectorStrokeColor,
|
||||
changeConnectorStrokeStyle,
|
||||
changeConnectorStrokeWidth,
|
||||
ConnectorMode,
|
||||
createConnectorElement,
|
||||
createShapeElement,
|
||||
dragBetweenViewCoords,
|
||||
edgelessCommonSetup as commonSetup,
|
||||
getConnectorPath,
|
||||
getConnectorPathWithInOut,
|
||||
locatorComponentToolbar,
|
||||
pickColorAtPoints,
|
||||
rotateElementByHandle,
|
||||
selectElementInEdgeless,
|
||||
@@ -21,7 +24,11 @@ import {
|
||||
triggerComponentToolbarAction,
|
||||
triggerShapeSwitch,
|
||||
} from '../../utils/actions/edgeless.js';
|
||||
import { pressBackspace, waitNextFrame } from '../../utils/actions/index.js';
|
||||
import {
|
||||
clickView,
|
||||
pressBackspace,
|
||||
waitNextFrame,
|
||||
} from '../../utils/actions/index.js';
|
||||
import {
|
||||
assertConnectorPath,
|
||||
assertEdgelessNonSelectedRect,
|
||||
@@ -186,6 +193,28 @@ test('change connector stroke style', async ({ page }) => {
|
||||
expect(pickedColor[0]).toBe('#000000');
|
||||
});
|
||||
|
||||
test('should record previous connector mode', async ({ page }) => {
|
||||
await commonSetup(page);
|
||||
await setEdgelessTool(page, 'connector');
|
||||
await assertEdgelessConnectorToolMode(page, ConnectorMode.Curve);
|
||||
await page.keyboard.press('c');
|
||||
await assertEdgelessConnectorToolMode(page, ConnectorMode.Orthogonal);
|
||||
await page.keyboard.press('c');
|
||||
await assertEdgelessConnectorToolMode(page, ConnectorMode.Straight);
|
||||
|
||||
await dragBetweenViewCoords(page, [100, 100], [200, 200]);
|
||||
await page.keyboard.press('c');
|
||||
await assertEdgelessConnectorToolMode(page, ConnectorMode.Straight);
|
||||
|
||||
await setEdgelessTool(page, 'default');
|
||||
await clickView(page, [150, 150]);
|
||||
await triggerComponentToolbarAction(page, 'changeConnectorShape');
|
||||
await locatorComponentToolbar(page).getByLabel('Curve').click();
|
||||
|
||||
await page.keyboard.press('c');
|
||||
await assertEdgelessConnectorToolMode(page, ConnectorMode.Curve);
|
||||
});
|
||||
|
||||
test.describe('quick connect', () => {
|
||||
test('should create a connector when clicking on button', async ({
|
||||
page,
|
||||
|
||||
Reference in New Issue
Block a user