"use client"; import { getInputProps, useForm, type FieldMetadata } from "@conform-to/react"; import { getZodConstraint, parseWithZod } from "@conform-to/zod"; import { signup } from "~/app/actions/auth"; import { signupSchema } from "~/lib/schema/auth"; import { useActionState } from "react"; import { type z } from "zod"; import { Button } from "./ui/button"; import { Input } from "./ui/input"; import { Label } from "./ui/label"; export function SignupForm() { const [lastResult, action, isSubmitting] = useActionState(signup, undefined); const [form, fields] = useForm({ id: "signup", lastResult, constraint: getZodConstraint(signupSchema), shouldValidate: "onBlur", onValidate({ formData }) { return parseWithZod(formData, { schema: signupSchema }); }, }); return (
); } function Field({ field, label, placeholder, type, }: { field: FieldMetadata{field.errors?.join(", ")}