diff --git a/src/SelectableGroup.tsx b/src/SelectableGroup.tsx index de4dabe..87b39f2 100644 --- a/src/SelectableGroup.tsx +++ b/src/SelectableGroup.tsx @@ -84,6 +84,7 @@ export type TSelectableGroupProps = { * @type boolean */ fixedPosition?: boolean + minSelectSize?: number } export class SelectableGroup extends Component { @@ -110,6 +111,7 @@ export class SelectableGroup extends Component { allowMetaClick: false, allowShiftClick: false, selectOnClick: true, + minSelectSize: 0 } state = { selectionMode: false } @@ -347,7 +349,6 @@ export class SelectableGroup extends Component { return } this.mouseMoveStarted = true - this.mouseMoved = true const { mouseDownData } = this const { clientX, clientY } = evt @@ -376,8 +377,17 @@ export class SelectableGroup extends Component { offsetHeight: selectboxState.height || 1, } - this.selectItems(selectboxBounds) - this.props.duringSelection!([...this.selectingItems]) + if ( + !this.props.minSelectSize || + this.props.minSelectSize < selectboxBounds.width || + this.props.minSelectSize < selectboxBounds.height + ) + { + this.mouseMoved = true + this.selectItems(selectboxBounds) + this.props.duringSelection!([...this.selectingItems]) + } + this.mouseMoveStarted = false } @@ -612,15 +622,16 @@ export class SelectableGroup extends Component { this.preventEvent(evt.target, 'click') } - this.setSelectboxState!({ - x: 0, - y: 0, - width: 0, - height: 0, - }) this.props.onSelectionFinish!([...this.selectedItems]) } + this.setSelectboxState!({ + x: 0, + y: 0, + width: 0, + height: 0, + }) + this.toggleSelectionMode() this.cleanUp() this.mouseMoved = false