From 428f2e8fb95eaf30be06687a66c9c41062523eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karlo=20Bistri=C4=8Dki?= Date: Thu, 31 Jul 2025 15:55:11 +0200 Subject: [PATCH] Get clicked handle element from event.currentTarget --- packages/react/src/components/Handle/index.tsx | 3 ++- packages/system/src/xyhandle/XYHandle.ts | 4 ++-- packages/system/src/xyhandle/types.ts | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/react/src/components/Handle/index.tsx b/packages/react/src/components/Handle/index.tsx index 31615f0c..601c0a31 100644 --- a/packages/react/src/components/Handle/index.tsx +++ b/packages/react/src/components/Handle/index.tsx @@ -120,6 +120,7 @@ function HandleComponent( return; } + const handleElement = event.currentTarget const isMouseTriggered = isMouseEvent(event.nativeEvent); if ( @@ -128,7 +129,7 @@ function HandleComponent( ) { const currentStore = store.getState(); - XYHandle.onPointerDown(event.nativeEvent, { + XYHandle.onPointerDown(event.nativeEvent, handleElement, { autoPanOnConnect: currentStore.autoPanOnConnect, connectionMode: currentStore.connectionMode, connectionRadius: currentStore.connectionRadius, diff --git a/packages/system/src/xyhandle/XYHandle.ts b/packages/system/src/xyhandle/XYHandle.ts index f6326ede..dc470daf 100644 --- a/packages/system/src/xyhandle/XYHandle.ts +++ b/packages/system/src/xyhandle/XYHandle.ts @@ -22,6 +22,7 @@ const alwaysValid = () => true; function onPointerDown( event: MouseEvent | TouchEvent, + handleElement: Element, { connectionMode, connectionRadius, @@ -54,8 +55,7 @@ function onPointerDown( let closestHandle: Handle | null; const { x, y } = getEventPosition(event); - const clickedHandle = doc?.elementFromPoint(x, y); - const handleType = getHandleType(edgeUpdaterType, clickedHandle); + const handleType = getHandleType(edgeUpdaterType, handleElement); const containerBounds = domNode?.getBoundingClientRect(); let connectionStarted = false; diff --git a/packages/system/src/xyhandle/types.ts b/packages/system/src/xyhandle/types.ts index baa8cf0a..a71eb962 100644 --- a/packages/system/src/xyhandle/types.ts +++ b/packages/system/src/xyhandle/types.ts @@ -54,7 +54,7 @@ export type IsValidParams = { }; export type XYHandleInstance = { - onPointerDown: (event: MouseEvent | TouchEvent, params: OnPointerDownParams) => void; + onPointerDown: (event: MouseEvent | TouchEvent, handleElement: Element, params: OnPointerDownParams) => void; isValid: (event: MouseEvent | TouchEvent, params: IsValidParams) => Result; };