From 750a3f8debdc469769b334a186f05bfe9c401562 Mon Sep 17 00:00:00 2001 From: Kerem Yilmaz Date: Tue, 8 Oct 2024 11:56:03 -0700 Subject: [PATCH] dont let users add loop node in another loop node for now (#934) --- .../src/routes/workflows/editor/edges/EdgeWithAddButton.tsx | 2 ++ .../workflows/editor/nodes/NodeAdderNode/NodeAdderNode.tsx | 2 ++ .../workflows/editor/panels/WorkflowNodeLibraryPanel.tsx | 3 +++ skyvern-frontend/src/store/WorkflowPanelStore.ts | 1 + 4 files changed, 8 insertions(+) diff --git a/skyvern-frontend/src/routes/workflows/editor/edges/EdgeWithAddButton.tsx b/skyvern-frontend/src/routes/workflows/editor/edges/EdgeWithAddButton.tsx index 545f10af..12974437 100644 --- a/skyvern-frontend/src/routes/workflows/editor/edges/EdgeWithAddButton.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/edges/EdgeWithAddButton.tsx @@ -56,6 +56,7 @@ function EdgeWithAddButton({ size="icon" className="h-4 w-4 rounded-full transition-all hover:scale-150" onClick={() => { + const disableLoop = Boolean(sourceNode?.parentId); setWorkflowPanelState({ active: true, content: "nodeLibrary", @@ -63,6 +64,7 @@ function EdgeWithAddButton({ previous: source, next: target, parent: sourceNode?.parentId, + disableLoop, }, }); }} diff --git a/skyvern-frontend/src/routes/workflows/editor/nodes/NodeAdderNode/NodeAdderNode.tsx b/skyvern-frontend/src/routes/workflows/editor/nodes/NodeAdderNode/NodeAdderNode.tsx index 92407c99..46131376 100644 --- a/skyvern-frontend/src/routes/workflows/editor/nodes/NodeAdderNode/NodeAdderNode.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/nodes/NodeAdderNode/NodeAdderNode.tsx @@ -27,6 +27,7 @@ function NodeAdderNode({ id, parentId }: NodeProps) { className="rounded-full bg-slate-50 p-2" onClick={() => { const previous = edges.find((edge) => edge.target === id)?.source; + const disableLoop = Boolean(parentId); setWorkflowPanelState({ active: true, content: "nodeLibrary", @@ -35,6 +36,7 @@ function NodeAdderNode({ id, parentId }: NodeProps) { next: id, parent: parentId, connectingEdgeType: "default", + disableLoop, }, }); }} diff --git a/skyvern-frontend/src/routes/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx b/skyvern-frontend/src/routes/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx index 70f4e737..19ce984f 100644 --- a/skyvern-frontend/src/routes/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx @@ -106,6 +106,9 @@ function WorkflowNodeLibraryPanel({ onNodeClick, first }: Props) {
{nodeLibraryItems.map((item) => { + if (workflowPanelData?.disableLoop && item.nodeType === "loop") { + return null; + } return (