From 73d9ec4b87e968790000c004cdaeaeec65096ad8 Mon Sep 17 00:00:00 2001 From: Amin Yahyaabadi Date: Tue, 29 Dec 2020 06:39:28 -0600 Subject: [PATCH] fix: remove duplicate drag handlers --- lib/minimap-element.js | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/minimap-element.js b/lib/minimap-element.js index 3442b400..1c533ce7 100644 --- a/lib/minimap-element.js +++ b/lib/minimap-element.js @@ -1183,28 +1183,29 @@ class MinimapElement { offsetTop: this.getBoundingClientRect().top } + // TODO can we avoid adding and removing the listeners every time? + const mousemoveHandler = (e) => this.drag(extractMouseEventData(e), initial) - const mouseupHandler = (e) => this.endDrag() + const dragendHandler = () => this.endDrag() const touchmoveHandler = (e) => this.drag(extractTouchEventData(e), initial) - const touchendHandler = (e) => this.endDrag() document.body.addEventListener('mousemove', mousemoveHandler, { passive: true }) - document.body.addEventListener('mouseup', mouseupHandler, { passive: true }) - document.body.addEventListener('mouseleave', mouseupHandler, { passive: true }) + document.body.addEventListener('mouseup', dragendHandler, { passive: true }) + document.body.addEventListener('mouseleave', dragendHandler, { passive: true }) document.body.addEventListener('touchmove', touchmoveHandler, { passive: true }) - document.body.addEventListener('touchend', touchendHandler, { passive: true }) - document.body.addEventListener('touchcancel', touchendHandler, { passive: true }) + document.body.addEventListener('touchend', dragendHandler, { passive: true }) + document.body.addEventListener('touchcancel', dragendHandler, { passive: true }) this.dragSubscription = new Disposable(function () { document.body.removeEventListener('mousemove', mousemoveHandler) - document.body.removeEventListener('mouseup', mouseupHandler) - document.body.removeEventListener('mouseleave', mouseupHandler) + document.body.removeEventListener('mouseup', dragendHandler) + document.body.removeEventListener('mouseleave', dragendHandler) document.body.removeEventListener('touchmove', touchmoveHandler) - document.body.removeEventListener('touchend', touchendHandler) - document.body.removeEventListener('touchcancel', touchendHandler) + document.body.removeEventListener('touchend', dragendHandler) + document.body.removeEventListener('touchcancel', dragendHandler) }) }