From 43cd5a81191c03fac071e01b4bbeb18c674ccbe1 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Thu, 23 Jan 2025 03:31:18 +0800 Subject: [PATCH] Add parameters in advanced settings of task based blocks (#1621) --- .../editor/nodes/ActionNode/ActionNode.tsx | 25 ++++++++++++++++++- .../nodes/ExtractionNode/ExtractionNode.tsx | 24 +++++++++++++++++- .../FileDownloadNode/FileDownloadNode.tsx | 25 ++++++++++++++++++- .../editor/nodes/LoginNode/LoginNode.tsx | 25 ++++++++++++++++++- .../nodes/NavigationNode/NavigationNode.tsx | 25 ++++++++++++++++++- .../nodes/ValidationNode/ValidationNode.tsx | 24 +++++++++++++++++- 6 files changed, 142 insertions(+), 6 deletions(-) diff --git a/skyvern-frontend/src/routes/workflows/editor/nodes/ActionNode/ActionNode.tsx b/skyvern-frontend/src/routes/workflows/editor/nodes/ActionNode/ActionNode.tsx index e2c5b1a1..6e8569de 100644 --- a/skyvern-frontend/src/routes/workflows/editor/nodes/ActionNode/ActionNode.tsx +++ b/skyvern-frontend/src/routes/workflows/editor/nodes/ActionNode/ActionNode.tsx @@ -8,7 +8,14 @@ import { Label } from "@/components/ui/label"; import { Separator } from "@/components/ui/separator"; import { useDeleteNodeCallback } from "@/routes/workflows/hooks/useDeleteNodeCallback"; import { useNodeLabelChangeHandler } from "@/routes/workflows/hooks/useLabelChangeHandler"; -import { Handle, NodeProps, Position, useReactFlow } from "@xyflow/react"; +import { + Handle, + NodeProps, + Position, + useEdges, + useNodes, + useReactFlow, +} from "@xyflow/react"; import { useState } from "react"; import { EditableNodeTitle } from "../components/EditableNodeTitle"; import { NodeActionMenu } from "../NodeActionMenu"; @@ -24,6 +31,9 @@ import { WorkflowBlockInputTextarea } from "@/components/WorkflowBlockInputTexta import { WorkflowBlockInput } from "@/components/WorkflowBlockInput"; import { WorkflowBlockIcon } from "../WorkflowBlockIcon"; import { WorkflowBlockTypes } from "@/routes/workflows/types/workflowTypes"; +import { AppNode } from ".."; +import { getAvailableOutputParameterKeys } from "../../workflowEditorUtils"; +import { ParametersMultiSelect } from "../TaskNode/ParametersMultiSelect"; const urlTooltip = "The URL Skyvern is navigating to. Leave this field blank to pick up from where the last block left off."; @@ -53,6 +63,10 @@ function ActionNode({ id, data }: NodeProps) { }); const deleteNodeCallback = useDeleteNodeCallback(); + const nodes = useNodes(); + const edges = useEdges(); + const outputParameterKeys = getAvailableOutputParameterKeys(nodes, edges, id); + function handleChange(key: string, value: unknown) { if (!editable) { return; @@ -150,6 +164,15 @@ function ActionNode({ id, data }: NodeProps) {
+
+ { + updateNodeData(id, { parameterKeys }); + }} + /> +