From 73c3fb45467119d18d8363f5de20f6c41e0df8c8 Mon Sep 17 00:00:00 2001 From: Blaine Landowski <42892508+blalan05@users.noreply.github.com> Date: Mon, 8 Apr 2024 19:53:29 -0500 Subject: [PATCH] fix(VTimePicker): use window events instead of element (#19523) fixes #19508 --- .../src/labs/VTimePicker/VTimePickerClock.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/vuetify/src/labs/VTimePicker/VTimePickerClock.tsx b/packages/vuetify/src/labs/VTimePicker/VTimePickerClock.tsx index 760e10ad30f..57f29b7a8d8 100644 --- a/packages/vuetify/src/labs/VTimePicker/VTimePickerClock.tsx +++ b/packages/vuetify/src/labs/VTimePicker/VTimePickerClock.tsx @@ -200,6 +200,10 @@ export const VTimePickerClock = genericComponent()({ function onMouseDown (e: MouseEvent | TouchEvent) { e.preventDefault() + window.addEventListener('mousemove', onDragMove) + window.addEventListener('touchmove', onDragMove) + window.addEventListener('mouseup', onMouseUp) + window.addEventListener('touchend', onMouseUp) valueOnMouseDown.value = null valueOnMouseUp.value = null isDragging.value = true @@ -208,6 +212,10 @@ export const VTimePickerClock = genericComponent()({ function onMouseUp (e: MouseEvent | TouchEvent) { e.stopPropagation() + window.removeEventListener('mousemove', onDragMove) + window.removeEventListener('touchmove', onDragMove) + window.removeEventListener('mouseup', onMouseUp) + window.removeEventListener('touchend', onMouseUp) isDragging.value = false if (valueOnMouseUp.value !== null && isAllowed(valueOnMouseUp.value)) { @@ -226,12 +234,7 @@ export const VTimePickerClock = genericComponent()({ }, ]} onMousedown={ onMouseDown } - onMouseup={ onMouseUp } - onMouseleave={ (e: MouseEvent) => (isDragging.value && onMouseUp(e)) } onTouchstart={ onMouseDown } - onTouchend={ onMouseUp } - onMousemove={ onDragMove } - onTouchmove={ onDragMove } onWheel={ (e: WheelEvent) => (props.scrollable && wheel(e)) } ref={ clockRef } >