mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 10:53:02 +00:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | 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 |