import { Collapse } from '@/components/collapse'; import { Button } from '@/components/ui/button'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form'; import { Switch } from '@/components/ui/switch'; import { Textarea } from '@/components/ui/textarea'; import { FormTooltip } from '@/components/ui/tooltip'; import { zodResolver } from '@hookform/resolvers/zod'; import { Plus } from 'lucide-react'; import { memo } from 'react'; import { useForm, useWatch } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { BeginQuery, INextOperatorForm } from '../../interface'; import { ParameterDialog } from '../begin-form/parameter-dialog'; import { QueryTable } from '../begin-form/query-table'; import { useEditQueryRecord } from '../begin-form/use-edit-query'; import { Output } from '../components/output'; import { useValues } from './use-values'; import { useWatchFormChange } from './use-watch-change'; function UserFillUpForm({ node }: INextOperatorForm) { const { t } = useTranslation(); const values = useValues(node); const FormSchema = z.object({ enable_tips: z.boolean().optional(), tips: z.string().trim().optional(), inputs: z .array( z.object({ key: z.string(), type: z.string(), value: z.string(), optional: z.boolean(), name: z.string(), options: z.array(z.union([z.number(), z.string(), z.boolean()])), }), ) .optional(), }); const form = useForm({ defaultValues: values, resolver: zodResolver(FormSchema), }); useWatchFormChange(node?.id, form); const inputs: BeginQuery[] = useWatch({ control: form.control, name: 'inputs', }); const outputList = inputs?.map((item) => ({ title: item.name, type: item.type, })); const { ok, currentRecord, visible, hideModal, showModal, otherThanCurrentQuery, handleDeleteRecord, } = useEditQueryRecord({ form, node, }); return (
( Guiding Question )} /> ( Message )} /> {/* Create a hidden field to make Form instance record this */}
} /> {t('flow.input')} } rightContent={ } > {visible && ( )}
); } export default memo(UserFillUpForm);