Skip to content

Commit

Permalink
Fix: add stopPropagation to draggable
Browse files Browse the repository at this point in the history
7.4.8

Fix: timeout to prevent clicks
  • Loading branch information
katspaugh committed Nov 26, 2023
1 parent e9cd82c commit 8852df3
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "wavesurfer.js",
"version": "7.4.7",
"version": "7.4.8",
"license": "BSD-3-Clause",
"author": "katspaugh",
"description": "Navigable audio waveform player",
Expand Down
13 changes: 11 additions & 2 deletions src/draggable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,26 @@ export function makeDraggable(
onStart?: (x: number, y: number) => void,
onEnd?: () => void,
threshold = 5,
mouseButton = 0,
): () => void {
if (!element) return () => void 0

let unsubscribeDocument = () => void 0

const onPointerDown = (event: PointerEvent) => {
if (event.button !== 0) return
if (event.button !== mouseButton) return

event.preventDefault()
event.stopPropagation()

let startX = event.clientX
let startY = event.clientY
let isDragging = false

const onPointerMove = (event: PointerEvent) => {
event.preventDefault()
event.stopPropagation()

const x = event.clientX
const y = event.clientY
const dx = x - startX
Expand Down Expand Up @@ -67,7 +74,9 @@ export function makeDraggable(
document.removeEventListener('pointerup', onPointerUp)
document.removeEventListener('pointercancel', onPointerUp)
document.removeEventListener('touchmove', onTouchMove)
element.removeEventListener('click', onClick, { capture: true })
setTimeout(() => {
element.removeEventListener('click', onClick, { capture: true })
}, 10)
}
}

Expand Down

0 comments on commit 8852df3

Please sign in to comment.