diff --git a/src/frontend/src/utils/reactflowUtils.ts b/src/frontend/src/utils/reactflowUtils.ts index 864b24c8a..ee779e8dc 100644 --- a/src/frontend/src/utils/reactflowUtils.ts +++ b/src/frontend/src/utils/reactflowUtils.ts @@ -133,10 +133,36 @@ export function cleanEdges(nodes: AllNodeType[], edges: EdgeType[]) { } } } + + newEdges = filterHiddenFieldsEdges(edge, newEdges, targetNode); }); return newEdges; } +export function filterHiddenFieldsEdges( + edge: EdgeType, + newEdges: EdgeType[], + targetNode: AllNodeType, +) { + if (targetNode) { + const nodeInputType = edge.data?.targetHandle?.inputTypes; + const nodeTemplates = targetNode.data.node!.template; + + Object.keys(nodeTemplates).forEach((key) => { + if (!nodeTemplates[key]?.input_types) return; + if ( + nodeTemplates[key]?.input_types?.some((type) => + nodeInputType?.includes(type), + ) && + !nodeTemplates[key].show + ) { + newEdges = newEdges.filter((e) => e.id !== edge.id); + } + }); + } + return newEdges; +} + export function detectBrokenEdgesEdges(nodes: AllNodeType[], edges: Edge[]) { function generateAlertObject(sourceNode, targetNode, edge) { const targetHandleObject: targetHandleType = scapeJSONParse(