Skip to content

Commit e7e3510

Browse files
committed
fix(cropper-selection): improve selection movement logic for better user experience
1 parent c960217 commit e7e3510

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

packages/element-selection/src/index.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -409,9 +409,9 @@ export default class CropperSelection extends CropperElement {
409409
return;
410410
}
411411

412-
const moveX = detail.endX - detail.startX;
413-
const moveY = detail.endY - detail.startY;
414412
const { width, height } = this;
413+
let moveX = detail.endX - detail.startX;
414+
let moveY = detail.endY - detail.startY;
415415
let { aspectRatio } = this;
416416

417417
// Locking aspect ratio by holding shift key
@@ -421,7 +421,14 @@ export default class CropperSelection extends CropperElement {
421421

422422
switch (action) {
423423
case ACTION_SELECT:
424-
if (moveX !== 0 && moveY !== 0) {
424+
if (moveX !== 0 || moveY !== 0) {
425+
// Force to create a square selection for better user experience
426+
if (moveX === 0) {
427+
moveX = moveY;
428+
} else if (moveY === 0) {
429+
moveY = moveX;
430+
}
431+
425432
const { $canvas } = this;
426433
const offset = getOffset(currentTarget as Element);
427434

0 commit comments

Comments
 (0)