diff --git a/.changeset/chilly-dogs-mix.md b/.changeset/chilly-dogs-mix.md new file mode 100644 index 00000000..a8081b38 --- /dev/null +++ b/.changeset/chilly-dogs-mix.md @@ -0,0 +1,7 @@ +--- +'@xyflow/system': patch +'@xyflow/react': patch +'@xyflow/svelte': patch +--- + +Fix connection snapping for handles larger than connectionRadius diff --git a/packages/system/src/xyhandle/XYHandle.ts b/packages/system/src/xyhandle/XYHandle.ts index 9c2af456..b8a5b4d2 100644 --- a/packages/system/src/xyhandle/XYHandle.ts +++ b/packages/system/src/xyhandle/XYHandle.ts @@ -157,8 +157,8 @@ function onPointerDown( ...previousConnection, isValid, to: - closestHandle && isValid - ? rendererPointToPoint({ x: closestHandle.x, y: closestHandle.y }, transform) + result.toHandle && isValid + ? rendererPointToPoint({ x: result.toHandle.x, y: result.toHandle.y }, transform) : position, toHandle: result.toHandle, toPosition: isValid && result.toHandle ? result.toHandle.position : oppositePosition[fromHandle.position], @@ -295,7 +295,7 @@ function isValidHandle( result.isValid = isValid && isValidConnection(connection); - result.toHandle = getHandle(handleNodeId, handleType, handleId, nodeLookup, connectionMode, false); + result.toHandle = getHandle(handleNodeId, handleType, handleId, nodeLookup, connectionMode, true); } return result;