Skip to content

Commit ea018a1

Browse files
authored
fix(YfmTableControls): fix drag-n-drop false positives (#853)
1 parent 46f5168 commit ea018a1

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

src/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenu/FloatingMenu.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ export type FloatingMenuProps = {
2323
canDrag: boolean;
2424
anchorElement: Element;
2525
dropdownItems: DropdownMenuProps<unknown>['items'];
26-
switcherMouseProps?: Pick<ButtonButtonProps, 'onMouseDown' | 'onMouseMove' | 'onMouseUp'>;
26+
switcherMouseProps?: Pick<
27+
ButtonButtonProps,
28+
'onMouseDown' | 'onMouseMove' | 'onMouseUp' | 'onMouseLeave'
29+
>;
2730
onOpenToggle: NonNullable<DropdownMenuProps<unknown>['onOpenToggle']>;
2831
};
2932

src/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ export const FloatingMenuControl: React.FC<FloatingMenuControlProps> =
103103
switcherMouseProps={
104104
dndHandler
105105
? {
106+
onMouseLeave: dndHandler.control_handleMouseLeave,
106107
onMouseDown: dndHandler.control_handleMouseDown,
107108
onMouseMove: dndHandler.control_handleMouseMove,
108109
onMouseUp: dndHandler.control_handleMouseUp,

src/extensions/yfm/YfmTable/plugins/YfmTableControls/dnd/dnd.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export type DnDControlHandler = {
3838
control_handleMouseDown: React.MouseEventHandler<HTMLButtonElement>;
3939
control_handleMouseMove: React.MouseEventHandler<HTMLButtonElement>;
4040
control_handleMouseUp: React.MouseEventHandler<HTMLButtonElement>;
41+
control_handleMouseLeave: React.MouseEventHandler<HTMLButtonElement>;
4142
};
4243

4344
interface TableHandler {
@@ -122,6 +123,10 @@ abstract class YfmTableDnDAbstractHandler implements TableHandler, DnDControlHan
122123
this.__dragMouseDown = false;
123124
};
124125

126+
control_handleMouseLeave: React.MouseEventHandler<HTMLButtonElement> = () => {
127+
this.__dragMouseDown = false;
128+
};
129+
125130
control_handleMouseMove: React.MouseEventHandler<HTMLButtonElement> = (event) => {
126131
if (!this._dragMouseDown || !isDragThresholdPassed(this._dragMouseDown, event)) return;
127132

0 commit comments

Comments
 (0)