From c20c9b53e1142c6f7ac6f38aaca4eb9dbeeb4484 Mon Sep 17 00:00:00 2001 From: Joel Date: Fri, 8 Mar 2024 10:40:12 +0800 Subject: [PATCH] feat: template tranform support debug --- .../nodes/template-transform/panel.tsx | 26 +++++++++++ .../nodes/template-transform/use-config.ts | 43 +++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/web/app/components/workflow/nodes/template-transform/panel.tsx b/web/app/components/workflow/nodes/template-transform/panel.tsx index f3334d3b53..4cf2fd34ff 100644 --- a/web/app/components/workflow/nodes/template-transform/panel.tsx +++ b/web/app/components/workflow/nodes/template-transform/panel.tsx @@ -12,6 +12,7 @@ import CodeEditor from '@/app/components/workflow/nodes/_base/components/editor/ import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars' import { HelpCircle } from '@/app/components/base/icons/src/vender/line/general' import type { NodePanelProps } from '@/app/components/workflow/types' +import BeforeRunForm from '@/app/components/workflow/nodes/_base/components/before-run-form' const i18nPrefix = 'workflow.nodes.templateTransform' @@ -27,6 +28,15 @@ const Panel: FC> = ({ handleVarListChange, handleAddVariable, handleCodeChange, + // single run + isShowSingleRun, + hideSingleRun, + runningStatus, + handleRun, + handleStop, + varInputs, + inputVarValues, + setInputVarValues, } = useConfig(id, data) return ( @@ -80,6 +90,22 @@ const Panel: FC> = ({ + {isShowSingleRun && ( + + )} ) } diff --git a/web/app/components/workflow/nodes/template-transform/use-config.ts b/web/app/components/workflow/nodes/template-transform/use-config.ts index 9e6b1b265a..6bb9fd1e17 100644 --- a/web/app/components/workflow/nodes/template-transform/use-config.ts +++ b/web/app/components/workflow/nodes/template-transform/use-config.ts @@ -3,6 +3,7 @@ import produce from 'immer' import useVarList from '../_base/hooks/use-var-list' import type { TemplateTransformNodeType } from './types' import useNodeCrud from '@/app/components/workflow/nodes/_base/hooks/use-node-crud' +import useOneStepRun from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run' const useConfig = (id: string, payload: TemplateTransformNodeType) => { const { inputs, setInputs } = useNodeCrud(id, payload) @@ -18,11 +19,53 @@ const useConfig = (id: string, payload: TemplateTransformNodeType) => { setInputs(newInputs) }, [setInputs]) + // single run + const { + isShowSingleRun, + hideSingleRun, + toVarInputs, + runningStatus, + handleRun, + handleStop, + runInputData, + setRunInputData, + } = useOneStepRun({ + id, + data: inputs, + defaultRunInputData: { + name: 'Joel', + age: '18', + }, + }) + const varInputs = toVarInputs(inputs.variables) + + const inputVarValues = (() => { + const vars: Record = {} + Object.keys(runInputData) + .forEach((key) => { + vars[key] = runInputData[key] + }) + return vars + })() + + const setInputVarValues = useCallback((newPayload: Record) => { + setRunInputData(newPayload) + }, [runInputData, setRunInputData]) + return { inputs, handleVarListChange, handleAddVariable, handleCodeChange, + // single run + isShowSingleRun, + hideSingleRun, + runningStatus, + handleRun, + handleStop, + varInputs, + inputVarValues, + setInputVarValues, } }