import type { KnowledgeBaseNodeType } from './types' import type { InputVar, Variable } from '@/app/components/workflow/types' import { useCallback, useMemo } from 'react' import { useTranslation } from 'react-i18next' import { InputVarType } from '@/app/components/workflow/types' type Params = { id: string payload: KnowledgeBaseNodeType runInputData: Record getInputVars: (textList: string[]) => InputVar[] setRunInputData: (data: Record) => void toVarInputs: (variables: Variable[]) => InputVar[] } const useSingleRunFormParams = ({ payload, runInputData, setRunInputData }: Params) => { const { t } = useTranslation() const query = runInputData.query const setQuery = useCallback( (newQuery: string) => { setRunInputData({ ...runInputData, query: newQuery, }) }, [runInputData, setRunInputData], ) const forms = useMemo(() => { return [ { inputs: [ { label: t(($) => $['nodes.common.inputVars'], { ns: 'workflow' }), variable: 'query', type: InputVarType.paragraph, required: true, }, ], values: { query }, onChange: (keyValue: Record) => setQuery(keyValue.query), }, ] }, [query, setQuery, t]) const getDependentVars = () => { return [payload.index_chunk_variable_selector] } const getDependentVar = (variable: string) => { if (variable === 'query') return payload.index_chunk_variable_selector } return { forms, getDependentVars, getDependentVar, } } export default useSingleRunFormParams