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 { useForm, useWatch } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { 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 { useValues } from './use-values'; import { useWatchFormChange } from './use-watch-change'; const 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 = useWatch({ control: form.control, name: 'inputs' }); 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 UserFillUpForm;