feat: synchronize input/output variables in the panel with generated code by the code generator (#10150)
This commit is contained in:
parent
fafa5938da
commit
f674de4f5d
5 changed files with 442 additions and 8 deletions
|
|
@ -3,7 +3,7 @@ import produce from 'immer'
|
|||
import useVarList from '../_base/hooks/use-var-list'
|
||||
import useOutputVarList from '../_base/hooks/use-output-var-list'
|
||||
import { BlockEnum, VarType } from '../../types'
|
||||
import type { Var } from '../../types'
|
||||
import type { Var, Variable } from '../../types'
|
||||
import { useStore } from '../../store'
|
||||
import type { CodeNodeType, OutputVar } from './types'
|
||||
import { CodeLanguage } from './types'
|
||||
|
|
@ -136,7 +136,15 @@ const useConfig = (id: string, payload: CodeNodeType) => {
|
|||
const setInputVarValues = useCallback((newPayload: Record<string, any>) => {
|
||||
setRunInputData(newPayload)
|
||||
}, [setRunInputData])
|
||||
|
||||
const handleCodeAndVarsChange = useCallback((code: string, inputVariables: Variable[], outputVariables: OutputVar) => {
|
||||
const newInputs = produce(inputs, (draft) => {
|
||||
draft.code = code
|
||||
draft.variables = inputVariables
|
||||
draft.outputs = outputVariables
|
||||
})
|
||||
setInputs(newInputs)
|
||||
syncOutputKeyOrders(outputVariables)
|
||||
}, [inputs, setInputs, syncOutputKeyOrders])
|
||||
return {
|
||||
readOnly,
|
||||
inputs,
|
||||
|
|
@ -163,6 +171,7 @@ const useConfig = (id: string, payload: CodeNodeType) => {
|
|||
inputVarValues,
|
||||
setInputVarValues,
|
||||
runResult,
|
||||
handleCodeAndVarsChange,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue