Skip to content

Commit 0978b9b

Browse files
committed
feat: enhance parameter validation to exclude node data types in DFlow function card
1 parent 08a3cea commit 0978b9b

File tree

1 file changed

+26
-24
lines changed

1 file changed

+26
-24
lines changed

src/components/d-flow/function/cards/DFlowFunctionCard.tsx

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ export const DFlowFunctionCard: React.FC<DFlowFunctionCardProps> = memo((props)
4343
const dataTypeService = useService(DFlowDataTypeReactiveService)
4444
const definition = functionService.getFunctionDefinition(data.function.function_id)
4545
const validation = useFunctionValidation(definition!!, data.parameters!!.map(p => p.value!!), useService(DFlowDataTypeReactiveService)!!)
46-
//validation && console.log(definition, data.parameters!!.map(p => p.value!!), validation)
47-
// Greife auf alle aktuellen Edges im Flow zu:
4846
const edges = useStore(s => s.edges);
4947

5048
// Helper, ob zu diesem Parameter eine Edge existiert:
@@ -136,29 +134,33 @@ export const DFlowFunctionCard: React.FC<DFlowFunctionCardProps> = memo((props)
136134
</div>
137135
) : null}
138136

137+
{functionData.parameters?.some(param => isNodeFunctionObject(param.value as NodeFunctionObject)) ? (
138+
<CardSection>
139+
{/* Dynamische Parameter-Eingänge (rechts), nur wenn wirklich verbunden */}
140+
{functionData.parameters?.map((param: NodeParameterObject, index: number) => {
141+
142+
143+
const parameter = definition?.parameters!!.find(p => p.parameter_id == param.definition.parameter_id)
144+
const isNodeDataType = dataTypeService.getDataType(parameter!!.type)?.type === EDataType.NODE;
145+
146+
147+
return isNodeFunctionObject(param.value as NodeFunctionObject) ? <Flex pos={"relative"}>
148+
{param.definition.parameter_id}
149+
<Handle
150+
key={param.definition.parameter_id}
151+
type="target"
152+
position={Position.Right}
153+
style={{position: "absolute", transform: isNodeDataType ? "translate(-50%, -50%)" : "translate(50%, -50%)", top: "50%", right: isNodeDataType ? "50%" : "0"}}
154+
id={`param-${param.definition.parameter_id}`}
155+
isConnectable={false}
156+
hidden={!isParamConnected(param.definition.parameter_id)}
157+
className={"function-card__handle function-card__handle--target"}
158+
/>
159+
</Flex> : null
160+
})}
161+
</CardSection>
162+
) : null}
139163

140-
{/* Dynamische Parameter-Eingänge (rechts), nur wenn wirklich verbunden */}
141-
{functionData.parameters?.map((param: NodeParameterObject, index: number) => {
142-
143-
144-
const parameter = definition?.parameters!!.find(p => p.parameter_id == param.definition.parameter_id)
145-
const isNodeDataType = dataTypeService.getDataType(parameter!!.type)?.type === EDataType.NODE;
146-
147-
148-
return <Flex pos={"relative"}>
149-
{param.definition.parameter_id}
150-
<Handle
151-
key={param.definition.parameter_id}
152-
type="target"
153-
position={Position.Right}
154-
style={{position: "absolute", transform: isNodeDataType ? "translate(-50%, -50%)" : "translate(50%, -50%)", top: "50%", right: isNodeDataType ? "50%" : "0"}}
155-
id={`param-${param.definition.parameter_id}`}
156-
isConnectable={false}
157-
hidden={!isParamConnected(param.definition.parameter_id)}
158-
className={"function-card__handle function-card__handle--target"}
159-
/>
160-
</Flex>
161-
})}
162164

163165
{/* Ausgang */}
164166
<Handle

0 commit comments

Comments
 (0)