'use client'; import { FormContainer } from '@/components/form-container'; import { BlockButton, Button } from '@/components/ui/button'; import { FormControl, FormField, FormItem, FormMessage, } from '@/components/ui/form'; import { Input } from '@/components/ui/input'; import { RAGFlowSelect } from '@/components/ui/select'; import { Separator } from '@/components/ui/separator'; import { RAGFlowNodeType } from '@/interfaces/database/flow'; import { X } from 'lucide-react'; import { ReactNode } from 'react'; import { useFieldArray, useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { useBuildComponentIdSelectOptions } from '../../hooks/use-get-begin-query'; interface IProps { node?: RAGFlowNodeType; name?: string; } export const TypeOptions = [ 'String', 'Number', 'Boolean', 'Array[String]', 'Array[Number]', 'Object', ].map((x) => ({ label: x, value: x })); export function DynamicVariableForm({ node, name = 'arguments' }: IProps) { const { t } = useTranslation(); const form = useFormContext(); const { fields, remove, append } = useFieldArray({ name: name, control: form.control, }); const valueOptions = useBuildComponentIdSelectOptions( node?.id, node?.parentId, ); return (