1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| 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)
| // variables
| 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
|
|