From b426cae847e3a1365018da28a2fbcf6e8d4ab19c Mon Sep 17 00:00:00 2001 From: Yujie Zhe Date: Wed, 8 Apr 2020 17:41:56 +1200 Subject: [PATCH 1/2] Fixed an issue where dnd freezes an event intermittently --- src/addons/dragAndDrop/EventContainerWrapper.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/addons/dragAndDrop/EventContainerWrapper.js b/src/addons/dragAndDrop/EventContainerWrapper.js index ec0cc985b..4be60fea4 100644 --- a/src/addons/dragAndDrop/EventContainerWrapper.js +++ b/src/addons/dragAndDrop/EventContainerWrapper.js @@ -133,6 +133,7 @@ class EventContainerWrapper extends React.Component { _selectable = () => { let node = findDOMNode(this) + let isBeingDragged = false let selector = (this._selector = new Selection(() => node.closest('.rbc-time-view') )) @@ -177,16 +178,25 @@ class EventContainerWrapper extends React.Component { this.handleDropFromOutside(point, bounds) }) - selector.on('selectStart', () => this.context.draggable.onStart()) + selector.on('selectStart', () => { + isBeingDragged = true + this.context.draggable.onStart() + }) selector.on('select', point => { const bounds = getBoundsForNode(node) - + isBeingDragged = false if (!this.state.event || !pointInColumn(bounds, point)) return this.handleInteractionEnd() }) - selector.on('click', () => this.context.draggable.onEnd(null)) + selector.on('click', () => { + if (isBeingDragged) { + this.reset() + } else { + this.context.draggable.onEnd(null) + } + }) selector.on('reset', () => { this.reset() From ee4c5da904ee20e871c0321c76f5fcf20db29ce4 Mon Sep 17 00:00:00 2001 From: Yujie Zhe Date: Thu, 9 Apr 2020 10:18:54 +1200 Subject: [PATCH 2/2] Make sure OnEnd is called no matter if it's being dragged --- src/addons/dragAndDrop/EventContainerWrapper.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/addons/dragAndDrop/EventContainerWrapper.js b/src/addons/dragAndDrop/EventContainerWrapper.js index 4be60fea4..53eb96f76 100644 --- a/src/addons/dragAndDrop/EventContainerWrapper.js +++ b/src/addons/dragAndDrop/EventContainerWrapper.js @@ -191,11 +191,8 @@ class EventContainerWrapper extends React.Component { }) selector.on('click', () => { - if (isBeingDragged) { - this.reset() - } else { - this.context.draggable.onEnd(null) - } + if (isBeingDragged) this.reset() + this.context.draggable.onEnd(null) }) selector.on('reset', () => {