Commit 49ce9d22 authored by Joel's avatar Joel

feat: http support debug and remove mock init debug data

parent c20c9b53
......@@ -42,7 +42,7 @@ const FormItem: FC<Props> = ({
}, [value, onChange])
return (
<div className='flex justify-between items-start'>
{type !== InputVarType.contexts && <div className='shrink-0 w-[96px] pr-1 h-8 leading-8 text-[13px] font-medium text-gray-700 capitalize truncate'>{payload.label}</div>}
{type !== InputVarType.contexts && <div className='shrink-0 w-[96px] pr-1 h-8 leading-8 text-[13px] font-medium text-gray-700 truncate'>{payload.label}</div>}
<div className='w-0 grow'>
{
type === InputVarType.textInput && (
......
......@@ -7,10 +7,11 @@ type Params<T> = {
id: string
data: CommonNodeType<T>
defaultRunInputData: Record<string, any>
isInvalid?: () => boolean
}
const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
const { handleNodeDataUpdate } = useWorkflow()
const useOneStepRun = <T>({ id, data, defaultRunInputData, isInvalid = () => true }: Params<T>) => {
const { handleNodeDataUpdate }: { handleNodeDataUpdate: (data: any) => void } = useWorkflow()
const isShowSingleRun = data._isSingleRun
const hideSingleRun = () => {
handleNodeDataUpdate({
......@@ -24,6 +25,9 @@ const useOneStepRun = <T>({ id, data, defaultRunInputData }: Params<T>) => {
const [runningStatus, setRunningStatus] = useState('un started')
const handleRun = () => {
if (isInvalid())
return
setRunningStatus('running')
}
......
......@@ -45,10 +45,7 @@ const useConfig = (id: string, payload: CodeNodeType) => {
} = useOneStepRun<CodeNodeType>({
id,
data: inputs,
defaultRunInputData: {
name: 'Joel',
age: '18',
},
defaultRunInputData: {},
})
const varInputs = toVarInputs(inputs.variables)
......
......@@ -14,6 +14,8 @@ import Split from '@/app/components/workflow/nodes/_base/components/split'
import OutputVars, { VarItem } from '@/app/components/workflow/nodes/_base/components/output-vars'
import { Settings01 } 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.http'
const Panel: FC<NodePanelProps<HttpNodeType>> = ({
......@@ -44,6 +46,15 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
showAuthorization,
hideAuthorization,
setAuthorization,
// single run
isShowSingleRun,
hideSingleRun,
runningStatus,
handleRun,
handleStop,
varInputs,
inputVarValues,
setInputVarValues,
} = useConfig(id, data)
return (
......@@ -148,6 +159,22 @@ const Panel: FC<NodePanelProps<HttpNodeType>> = ({
</>
</OutputVars>
</div>
{isShowSingleRun && (
<BeforeRunForm
nodeName={inputs.title}
onHide={hideSingleRun}
forms={[
{
inputs: varInputs,
values: inputVarValues,
onChange: setInputVarValues,
},
]}
runningStatus={runningStatus}
onRun={handleRun}
onStop={handleStop}
/>
)}
</div >
)
}
......
......@@ -5,6 +5,7 @@ import useVarList from '../_base/hooks/use-var-list'
import type { Authorization, Body, HttpNodeType, Method } from './types'
import useKeyValueList from './hooks/use-key-value-list'
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: HttpNodeType) => {
const { inputs, setInputs } = useNodeCrud<HttpNodeType>(id, payload)
......@@ -64,6 +65,36 @@ const useConfig = (id: string, payload: HttpNodeType) => {
setInputs(newInputs)
}, [inputs, setInputs])
// single run
const {
isShowSingleRun,
hideSingleRun,
toVarInputs,
runningStatus,
handleRun,
handleStop,
runInputData,
setRunInputData,
} = useOneStepRun<HttpNodeType>({
id,
data: inputs,
defaultRunInputData: {},
})
const varInputs = toVarInputs(inputs.variables)
const inputVarValues = (() => {
const vars: Record<string, any> = {}
Object.keys(runInputData)
.forEach((key) => {
vars[key] = runInputData[key]
})
return vars
})()
const setInputVarValues = useCallback((newPayload: Record<string, any>) => {
setRunInputData(newPayload)
}, [runInputData, setRunInputData])
return {
inputs,
handleVarListChange,
......@@ -89,6 +120,15 @@ const useConfig = (id: string, payload: HttpNodeType) => {
showAuthorization,
hideAuthorization,
setAuthorization,
// single run
isShowSingleRun,
hideSingleRun,
runningStatus,
handleRun,
handleStop,
varInputs,
inputVarValues,
setInputVarValues,
}
}
......
......@@ -68,7 +68,7 @@ const useConfig = (id: string, payload: KnowledgeRetrievalNodeType) => {
id,
data: inputs,
defaultRunInputData: {
query: 'What is the capital of France?',
query: '',
},
})
......
......@@ -103,8 +103,6 @@ const useConfig = (id: string, payload: LLMNodeType) => {
id,
data: inputs,
defaultRunInputData: {
'name': 'Joel',
'age': '18',
'#context#': [RETRIEVAL_OUTPUT_STRUCT],
'#vision#': [],
},
......
......@@ -66,7 +66,7 @@ const useConfig = (id: string, payload: QuestionClassifierNodeType) => {
id,
data: inputs,
defaultRunInputData: {
query: 'Negative or positive sentiment?',
query: '',
},
})
......
......@@ -32,10 +32,7 @@ const useConfig = (id: string, payload: TemplateTransformNodeType) => {
} = useOneStepRun<TemplateTransformNodeType>({
id,
data: inputs,
defaultRunInputData: {
name: 'Joel',
age: '18',
},
defaultRunInputData: {},
})
const varInputs = toVarInputs(inputs.variables)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment