1- import React , { useState } from 'react' ;
1+ import React , { useState , useMemo } from 'react' ;
22import { LuDownload , LuPlus } from 'react-icons/lu' ;
33import styles from '@/app/canvas/assets/Node.module.scss' ;
44import { generatePortKey , getConnectedSchemaProvider } from '../utils/nodeUtils' ;
5+ import { filterPortsByDependency } from '../utils/portUtils' ;
56import type { NodePortsProps } from '../types' ;
67import type { Port } from '@/app/canvas/types' ;
78
@@ -15,6 +16,7 @@ export const RouterNodePorts: React.FC<RouterNodePortsProps> = ({
1516 nodeId,
1617 inputs,
1718 outputs,
19+ parameters,
1820 isPreview = false ,
1921 isPredicted = false ,
2022 isSelected,
@@ -33,8 +35,12 @@ export const RouterNodePorts: React.FC<RouterNodePortsProps> = ({
3335 const [ editingOutput , setEditingOutput ] = useState < string | null > ( null ) ;
3436 const [ editingOutputValue , setEditingOutputValue ] = useState < string > ( '' ) ;
3537
36- const hasInputs = inputs && inputs . length > 0 ;
37- const hasOutputs = outputs && outputs . length > 0 ;
38+ // Filter ports based on parameter dependencies
39+ const filteredInputs = useMemo ( ( ) => filterPortsByDependency ( inputs , parameters ) , [ inputs , parameters ] ) ;
40+ const filteredOutputs = useMemo ( ( ) => filterPortsByDependency ( outputs , parameters ) , [ outputs , parameters ] ) ;
41+
42+ const hasInputs = filteredInputs && filteredInputs . length > 0 ;
43+ const hasOutputs = filteredOutputs && filteredOutputs . length > 0 ;
3844 const hasOnlyOutputs = hasOutputs && ! hasInputs ;
3945
4046 const handleSynchronizeSchema = ( portId : string ) => {
@@ -116,7 +122,7 @@ export const RouterNodePorts: React.FC<RouterNodePortsProps> = ({
116122 { hasInputs && (
117123 < div className = { styles . column } >
118124 < div className = { styles . sectionHeader } > INPUT</ div >
119- { inputs . map ( portData => {
125+ { filteredInputs . map ( portData => {
120126 const portKey = generatePortKey ( nodeId , portData . id , 'input' ) ;
121127 const isSnapping = snappedPortKey === portKey ;
122128
@@ -220,7 +226,7 @@ export const RouterNodePorts: React.FC<RouterNodePortsProps> = ({
220226 </ button >
221227 ) }
222228 </ div >
223- { hasOutputs ? outputs . map ( portData => {
229+ { hasOutputs ? filteredOutputs . map ( portData => {
224230 const portClasses = [
225231 styles . port ,
226232 styles . outputPort ,
0 commit comments