diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
index 6aeae577d..f4608a8a5 100644
--- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
+++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx
@@ -32,7 +32,7 @@ import {
} from "../../../../utils/styleUtils";
import { classNames, groupByFamily } from "../../../../utils/utils";
-export default function ParameterComponent({
+export default function ParameterComponent({
left,
id,
data,
@@ -181,11 +181,6 @@ export default function ParameterComponent({
return (
!showNode ? (
-
- {
left &&
(type === "str" ||
type === "bool" ||
@@ -211,7 +206,7 @@ export default function ParameterComponent({
isValidConnection(connection, reactFlowInstance!)
}
className={classNames(
- left ? "-ml-0.5 " : "-mr-0.5 ",
+ left ? "-ml-0.5 my-12 " : " -mr-0.4 my-12 ",
"h-3 w-3 rounded-full border-2 bg-background"
)}
style={{
@@ -220,8 +215,7 @@ export default function ParameterComponent({
}}
>
- )}
- div>
+ )
) : (
(null);
const [showNode, setShowNode] = useState
(true);
+ const [handles, setHandles] = useState([]);
+ let numberOfInputs: boolean[] = [];
+
+ function countHandles(): void {
+ numberOfInputs = Object.keys(data.node!.template)
+ .filter((templateField) => templateField.charAt(0) !== "_").map((templateCamp) => {
+ if (!data.node?.template[templateCamp].show) return false
+ switch (data.node?.template[templateCamp].type) {
+ case "str":
+ return false;
+ case "bool":
+ return false;
+ case "float":
+ return false;
+ case "code":
+ return false;
+ case "prompt":
+ return false;
+ case "file":
+ return false;
+ case "int":
+ return false;
+ default:
+ return true
+ }
+ })
+ setHandles(numberOfInputs)
+ };
+
+ useEffect(() => {
+ countHandles();
+ }, [])
+
// State for outline color
const { sseData, isBuilding } = useSSE();
useEffect(() => {
@@ -51,7 +84,9 @@ export default function GenericNode({
},
});
updateFlow(flow);
+ console.log(myFlow)
}
+ countHandles();
}, [data]);
// New useEffect to watch for changes in sseData and update validation status
@@ -73,27 +108,28 @@ export default function GenericNode({
setData={setData}
deleteNode={deleteNode}
setShowNode={setShowNode}
+ numberOfHandles={handles}
>
- {data.node?.beta && (
+ {data.node?.beta && showNode && (
)}
-
-
+
+
{showNode && (
@@ -112,8 +148,7 @@ export default function GenericNode({
{Object.keys(data.node!.template)
.filter((templateField) => templateField.charAt(0) !== "_")
.map((templateField: string, idx) => (
-
- {data.node!.template[templateField].show &&
+ data.node!.template[templateField].show &&
!data.node!.template[templateField].advanced && (
- )}
-
))}
+ )))}
{
+ if (bool) countHandles += 1;
+ });
+ if (countHandles > 1) return false;
+ return true;
+ }
+
const { paste } = useContext(TabsContext);
const reactFlowInstance = useReactFlow();
return (
@@ -119,11 +129,12 @@ export default function NodeToolbarComponent({
-
+