Skip to content

Commit cc65f12

Browse files
committed
fix(core): fall back to changedTouches for touchend events (#1830)
* fix(core): fall back to changedTouches for touchend events Signed-off-by: braks <[email protected]> * chore(changeset): add Signed-off-by: braks <[email protected]> --------- Signed-off-by: braks <[email protected]>
1 parent 265f928 commit cc65f12

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

.changeset/wild-bobcats-wash.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@vue-flow/core": patch
3+
---
4+
5+
Fall back to using changedTouches when passing a touchend or touchcancel event to getEventPosition.

packages/core/src/utils/general.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,23 @@ export function isUseDragEvent(event: any): event is UseDragEvent {
1212
export function getEventPosition(event: MouseEvent | TouchEvent, bounds?: DOMRect) {
1313
const isMouse = isMouseEvent(event)
1414

15-
const evtX = isMouse ? event.clientX : event.touches?.[0].clientX
16-
const evtY = isMouse ? event.clientY : event.touches?.[0].clientY
15+
let evtX: number
16+
let evtY: number
17+
18+
if (isMouse) {
19+
evtX = event.clientX
20+
evtY = event.clientY
21+
} else if ('touches' in event && event.touches.length > 0) {
22+
evtX = event.touches[0].clientX
23+
evtY = event.touches[0].clientY
24+
} else if ('changedTouches' in event && event.changedTouches.length > 0) {
25+
evtX = event.changedTouches[0].clientX
26+
evtY = event.changedTouches[0].clientY
27+
} else {
28+
// fallback for other cases
29+
evtX = 0
30+
evtY = 0
31+
}
1732

1833
return {
1934
x: evtX - (bounds?.left ?? 0),

packages/core/src/utils/handle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ export function getClosestHandle(
122122
return closestHandles[0]
123123
}
124124

125-
// checks if and returns connection in form of an object { source: 123, target: 312 }
125+
// checks if and returns connection in form of an object { source: 123, target: 312 }
126126
export function isValidHandle(
127127
event: MouseEvent | TouchEvent,
128128
{

0 commit comments

Comments
 (0)