From db473f6f0da085d6fcf292080223c8bea7184f73 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Wed, 2 Aug 2023 22:23:16 -0300 Subject: [PATCH] migrate isValidConnection to handle in JSON format --- src/frontend/src/utils/reactflowUtils.ts | 28 ++++++++++-------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 735867954..f9036ba13 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -57,25 +57,21 @@ export function cleanEdges({ updateEdge(newEdges); } +// add comments to this function export function isValidConnection( { source, target, sourceHandle, targetHandle }: Connection, reactFlowInstance: ReactFlowInstance ) { + const targetHandleObject: targetHandleType = JSON.parse(targetHandle); + const sourceHandleObject: sourceHandleType = JSON.parse(sourceHandle); if ( - targetHandle - .split("|")[0] - .split(";") - .some((n) => n === sourceHandle.split("|")[0]) || - sourceHandle - .split("|") - .slice(2) - .some((t) => - targetHandle - .split("|")[0] - .split(";") - .some((n) => n === t) - ) || - targetHandle.split("|")[0] === "str" + targetHandleObject.inputTypes?.some( + (n) => n === sourceHandleObject.dataType + ) || + sourceHandleObject.baseClasses.some((t) => + targetHandleObject.inputTypes?.some((n) => n === t) + ) || + targetHandleObject.type === "str" ) { let targetNode = reactFlowInstance?.getNode(target)?.data?.node; if (!targetNode) { @@ -87,11 +83,11 @@ export function isValidConnection( return true; } } else if ( - (!targetNode.template[targetHandle.split("|")[1]].list && + (!targetNode.template[targetHandleObject.fieldName].list && !reactFlowInstance .getEdges() .find((e) => e.targetHandle === targetHandle)) || - targetNode.template[targetHandle.split("|")[1]].list + targetNode.template[targetHandleObject.fieldName].list ) { return true; }