mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-03-24 16:18:39 +08:00
fix(editor): shape tool should be the last used shape (#12425)
Close [BS-3305](https://linear.app/affine-design/issue/BS-3305/白板按s应该使用上次的shape形状) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added a method to cycle through shape types when using the shape tool. - **Bug Fixes** - Improved shape tool behavior to ensure the selected shape type does not change unexpectedly after adding a new shape. - **Tests** - Added an end-to-end test to verify that the shape tool retains the selected shape type after adding a new shape. - Enhanced shortcut tests to verify cycling shapes forward and backward using 's' and 'Shift+s' keys. - **Refactor** - Streamlined the logic for cycling through shape types and connector modes for improved maintainability. - Removed external utility for cycling shapes, integrating the functionality directly into the shape tool. - Updated keyboard shortcut handling to use the new cycling method within the shape tool. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -223,13 +223,15 @@ export class ConnectorTool extends BaseTool<ConnectorToolOptions> {
|
||||
}
|
||||
|
||||
getNextMode() {
|
||||
switch (this.activatedOption.mode) {
|
||||
case ConnectorMode.Curve:
|
||||
return ConnectorMode.Orthogonal;
|
||||
case ConnectorMode.Orthogonal:
|
||||
return ConnectorMode.Straight;
|
||||
case ConnectorMode.Straight:
|
||||
return ConnectorMode.Curve;
|
||||
}
|
||||
// reorder the enum values
|
||||
const modes = [
|
||||
ConnectorMode.Curve,
|
||||
ConnectorMode.Orthogonal,
|
||||
ConnectorMode.Straight,
|
||||
];
|
||||
|
||||
const currentIndex = modes.indexOf(this.activatedOption.mode);
|
||||
const nextIndex = (currentIndex + 1) % modes.length;
|
||||
return modes[nextIndex];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user