/* eslint-disable react/no-children-prop */ "use client" import * as React from "react" import { useForm } from "@tanstack/react-form" import { XIcon } from "lucide-react" import { toast } from "sonner" import { z } from "zod" import { Button } from "@/registry/new-york-v4/ui/button" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/registry/new-york-v4/ui/card" import { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLegend, FieldSet, } from "@/registry/new-york-v4/ui/field" import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, } from "@/registry/new-york-v4/ui/input-group" const formSchema = z.object({ emails: z .array( z.object({ address: z.string().email("Enter a valid email address."), }) ) .min(1, "Add at least one email address.") .max(5, "You can add up to 5 email addresses."), }) export default function FormTanstackArray() { const form = useForm({ defaultValues: { emails: [{ address: "" }], }, validators: { onBlur: formSchema, }, onSubmit: async ({ value }) => { toast("You submitted the following values:", { description: (
{JSON.stringify(value, null, 2)}
),
position: "bottom-right",
classNames: {
content: "flex flex-col gap-2",
},
style: {
"--border-radius": "calc(var(--radius) + 4px)",
} as React.CSSProperties,
})
},
})
return (