import { useFetchAgent } from '@/hooks/use-agent-request'; import { GlobalVariableType } from '@/interfaces/database/agent'; import { useCallback } from 'react'; import { FieldValues } from 'react-hook-form'; import { useSaveGraph } from '../../hooks/use-save-graph'; import { TypesWithArray } from '../constant'; export const useHandleForm = () => { const { data, refetch } = useFetchAgent(); const { saveGraph, loading } = useSaveGraph(); const handleObjectData = (value: any) => { try { return JSON.parse(value); } catch (error) { return value; } }; const handleSubmit = useCallback(async (fieldValue: FieldValues) => { const param = { ...(data.dsl?.variables || {}), [fieldValue.name]: { ...fieldValue, value: fieldValue.type === TypesWithArray.Object || fieldValue.type === TypesWithArray.ArrayObject ? handleObjectData(fieldValue.value) : fieldValue.value, }, } as Record; const res = await saveGraph(undefined, { globalVariables: param, }); if (res.code === 0) { refetch(); } }, []); return { handleSubmit, loading }; };