+ {data.node!.base_classes.length > 0 && (
+
0
+ ? nodeColors[data.node.output_types[0]] ??
+ nodeColors[types[data.node.output_types[0]]]
+ : nodeColors[types[data.type]]) ?? nodeColors.unknown
+ }
+ title={
+ data.node?.output_types &&
+ data.node.output_types.length > 0
+ ? data.node.output_types.join(" | ")
+ : data.type
+ }
+ conditionPath={data.node?.is_conditional ? "True" : null}
+ tooltipTitle={data.node?.base_classes.join("\n")}
+ id={{
+ baseClasses: data.node!.base_classes,
+ id: data.id,
+ dataType: data.type,
+ // First parameter component should be true
+ // Second should be false
+ conditionalPath: data.node!.is_conditional ? true : null,
+ }}
+ // Type should be base_classes if it's not a conditional node
+ // else it should be true in the first parameter component
+ type={data.node?.base_classes.join("|")}
+ left={false}
+ showNode={showNode}
+ />
+ )}
+ {data.node!.is_conditional && (
+ 0
+ ? nodeColors[data.node.output_types[0]] ??
+ nodeColors[types[data.node.output_types[0]]]
+ : nodeColors[types[data.type]]) ?? nodeColors.unknown
+ }
+ title={
+ data.node?.output_types &&
+ data.node.output_types.length > 0
+ ? data.node.output_types.join(" | ")
+ : data.type
+ }
+ conditionPath={data.node?.is_conditional ? "False" : null}
+ tooltipTitle={data.node?.base_classes.join("\n")}
+ id={{
+ baseClasses: data.node!.base_classes,
+ id: data.id,
+ dataType: data.type,
+ // condition should be null if it's not a conditional node
+ // false if it's a conditional node and the condition is false
+ // so we should check if it's a conditional node.
+ conditionalPath: data.node!.is_conditional ? false : null,
+ }}
+ type={data.node?.base_classes.join("|")}
+ left={false}
+ showNode={showNode}
+ />
+ )}
+
>
)}
diff --git a/src/frontend/src/types/api/index.ts b/src/frontend/src/types/api/index.ts
index 6663692dc..646941bd9 100644
--- a/src/frontend/src/types/api/index.ts
+++ b/src/frontend/src/types/api/index.ts
@@ -20,6 +20,7 @@ export type APIClassType = {
icon?: string;
is_input?: boolean;
is_output?: boolean;
+ is_conditional?: boolean;
input_types?: Array