diff --git a/packages/core/src/composables/useHandle.ts b/packages/core/src/composables/useHandle.ts index b4a6c90d..7141adc9 100644 --- a/packages/core/src/composables/useHandle.ts +++ b/packages/core/src/composables/useHandle.ts @@ -44,6 +44,7 @@ export default function useHandle({ endConnection, emits, viewport, + edges, } = useVueFlow() function handlePointerDown(event: MouseEvent | TouchEvent) { @@ -134,6 +135,8 @@ export default function useHandle({ isTarget ? 'target' : 'source', validConnectFunc, doc, + edges.value, + findNode, ) updateConnection( @@ -174,6 +177,8 @@ export default function useHandle({ isTarget ? 'target' : 'source', validConnectFunc, doc, + edges.value, + findNode, ) if (isValid) { @@ -236,6 +241,8 @@ export default function useHandle({ connectionClickStartHandle.value.type, validConnectFunc, doc, + edges.value, + findNode, ) const isOwnHandle = connection.source === connection.target diff --git a/packages/core/src/utils/handle.ts b/packages/core/src/utils/handle.ts index e2884376..4af31c19 100644 --- a/packages/core/src/utils/handle.ts +++ b/packages/core/src/utils/handle.ts @@ -1,5 +1,14 @@ import { ConnectionMode } from '~/types' -import type { Connection, GraphNode, HandleType, NodeHandleBounds, ValidConnectionFunc, XYPosition } from '~/types' +import type { + Actions, + Connection, + GraphEdge, + GraphNode, + HandleType, + NodeHandleBounds, + ValidConnectionFunc, + XYPosition, +} from '~/types' export interface ConnectionHandle { id: string | null @@ -71,9 +80,9 @@ export function isValidHandle( fromType: string, isValidConnection: ValidConnectionFunc, doc: Document | ShadowRoot, + edges: GraphEdge[], + findNode: Actions['findNode'], ) { - const { edges, findNode } = useVueFlow() - const isTarget = fromType === 'target' const handleDomNode = doc.querySelector(`.vue-flow__handle[data-id="${handle?.nodeId}-${handle?.id}-${handle?.type}"]`) @@ -108,7 +117,7 @@ export function isValidHandle( if (isValid) { result.isValid = isValidConnection(connection, { - edges: edges.value, + edges, sourceNode: findNode(connection.source)!, targetNode: findNode(connection.target)!, })