| | import { useCallback } from 'react' |
| | import produce from 'immer' |
| | import useVarList from '../_base/hooks/use-var-list' |
| | import type { Var } from '../../types' |
| | import { VarType } from '../../types' |
| | import type { AnswerNodeType } from './types' |
| | import useNodeCrud from '@/app/components/workflow/nodes/_base/hooks/use-node-crud' |
| | import { |
| | useNodesReadOnly, |
| | } from '@/app/components/workflow/hooks' |
| |
|
| | const useConfig = (id: string, payload: AnswerNodeType) => { |
| | const { nodesReadOnly: readOnly } = useNodesReadOnly() |
| | const { inputs, setInputs } = useNodeCrud<AnswerNodeType>(id, payload) |
| | |
| | const { handleVarListChange, handleAddVariable } = useVarList<AnswerNodeType>({ |
| | inputs, |
| | setInputs, |
| | }) |
| |
|
| | const handleAnswerChange = useCallback((value: string) => { |
| | const newInputs = produce(inputs, (draft) => { |
| | draft.answer = value |
| | }) |
| | setInputs(newInputs) |
| | }, [inputs, setInputs]) |
| |
|
| | const filterVar = useCallback((varPayload: Var) => { |
| | return varPayload.type !== VarType.arrayObject |
| | }, []) |
| | return { |
| | readOnly, |
| | inputs, |
| | handleVarListChange, |
| | handleAddVariable, |
| | handleAnswerChange, |
| | filterVar, |
| | } |
| | } |
| |
|
| | export default useConfig |
| |
|