import type { useForm , useForm } from "react-hook-form"; import { useFieldArray } from "react-hook-form"; import { Button } from "../../button"; import { Separator } from "../../separator"; import { beautifyObjectName } from "../utils"; import AutoFormObject from "./object"; import { Plus, Trash } from "lucide-react"; import { AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion"; import type { z } from "zod"; export default function AutoFormArray({ name, item, form, path = [], fieldConfig, }: { name: string; item: z.ZodArray; form: ReturnType; path?: string[]; fieldConfig?: any; }) { const { fields, append, remove } = useFieldArray({ control: form.control, name, }); const title = item._def.description ?? beautifyObjectName(name); return ( {title} {fields.map((_field, index) => { const key = [...path, index.toString()].join("."); return (
} form={form} fieldConfig={fieldConfig} path={[...path, index.toString()]} />
); })}
); }