From 7ac8a62b2726c05b9e4449f9c51480bcb3b408d7 Mon Sep 17 00:00:00 2001 From: Ghislain B Date: Thu, 23 Nov 2023 15:37:32 -0500 Subject: [PATCH] fix: Draggable shouldn't trigger dragEnd without first dragging (#922) - the `onDragEnd` was called every time a cell was clicked even when user was not even dragging, we should make sure to only trigger `onDragEnd` if a drag actually started to avoid triggering too many events for no reasons --- slick.interactions.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/slick.interactions.js b/slick.interactions.js index 0c410e18..495dedc4 100644 --- a/slick.interactions.js +++ b/slick.interactions.js @@ -97,15 +97,19 @@ } function userReleased(event) { - const { target } = event; - originaldd = Object.assign(originaldd, { target }); - executeDragCallbackWhenDefined(onDragEnd, event, originaldd); document.removeEventListener('mousemove', userMoved); document.removeEventListener('touchmove', userMoved); document.removeEventListener('mouseup', userReleased); document.removeEventListener('touchend', userReleased); document.removeEventListener('touchcancel', userReleased); - dragStarted = false; + + // trigger a dragEnd event only after dragging started and stopped + if (dragStarted) { + const { target } = event; + originaldd = Object.assign(originaldd, { target }); + executeDragCallbackWhenDefined(onDragEnd, event, originaldd); + dragStarted = false; + } } function windowScrollPosition() {