From c1603b2d5848c4e6ae0256ee2c253810a8f27526 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Sun, 5 Nov 2023 10:28:35 +0100 Subject: [PATCH] feat(core): add nodes to `isValidConnection` args --- packages/core/src/composables/useHandle.ts | 3 +++ packages/core/src/types/handle.ts | 2 +- packages/core/src/utils/handle.ts | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/core/src/composables/useHandle.ts b/packages/core/src/composables/useHandle.ts index 53bda755..d1cdf5e9 100644 --- a/packages/core/src/composables/useHandle.ts +++ b/packages/core/src/composables/useHandle.ts @@ -57,6 +57,7 @@ export function useHandle({ emits, viewport, edges, + nodes, isValidConnection: isValidConnectionProp, } = useVueFlow() @@ -152,6 +153,7 @@ export function useHandle({ isValidConnectionHandler, doc, edges.value, + nodes.value, findNode, ), ) @@ -278,6 +280,7 @@ export function useHandle({ isValidConnectionHandler, doc, edges.value, + nodes.value, findNode, ) diff --git a/packages/core/src/types/handle.ts b/packages/core/src/types/handle.ts index 45dd1671..ad41682d 100644 --- a/packages/core/src/types/handle.ts +++ b/packages/core/src/types/handle.ts @@ -34,7 +34,7 @@ export interface ConnectingHandle { /** A valid connection function can determine if an attempted connection is valid or not, i.e. abort creating a new edge */ export type ValidConnectionFunc = ( connection: Connection, - elements: { edges: GraphEdge[]; sourceNode: GraphNode; targetNode: GraphNode }, + elements: { edges: GraphEdge[]; nodes: GraphNode[]; sourceNode: GraphNode; targetNode: GraphNode }, ) => boolean export type HandleConnectableFunc = (node: GraphNode, connectedEdges: GraphEdge[]) => boolean diff --git a/packages/core/src/utils/handle.ts b/packages/core/src/utils/handle.ts index 454c831b..3eccca20 100644 --- a/packages/core/src/utils/handle.ts +++ b/packages/core/src/utils/handle.ts @@ -151,6 +151,7 @@ export function isValidHandle( isValidConnection: ValidConnectionFunc, doc: Document | ShadowRoot, edges: GraphEdge[], + nodes: GraphNode[], findNode: Actions['findNode'], ) { const isTarget = fromType === 'target' @@ -201,6 +202,7 @@ export function isValidHandle( if (isValid) { result.isValid = isValidConnection(connection, { edges, + nodes, sourceNode: findNode(connection.source)!, targetNode: findNode(connection.target)!, })