diff --git a/src/components/admin/leads/LeadForm.tsx b/src/components/admin/leads/LeadForm.tsx index caf1926..9e18306 100644 --- a/src/components/admin/leads/LeadForm.tsx +++ b/src/components/admin/leads/LeadForm.tsx @@ -3,8 +3,7 @@ import { useState } from "react"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; -import { createLeadSchema, LEAD_STAGES } from "@/lib/lead-validators"; +import { createLeadSchema, LEAD_STAGES, type CreateLeadInput } from "@/lib/lead-validators"; import { Lead } from "@/db/schema"; import { createLead, updateLead } from "@/app/admin/leads/actions"; import { @@ -33,12 +32,10 @@ import { Input } from "@/components/ui/input"; import { Textarea } from "@/components/ui/textarea"; import { Button } from "@/components/ui/button"; -type CreateLeadInput = z.infer; - export function CreateLeadModal() { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); - const form = useForm({ + const form = useForm({ resolver: zodResolver(createLeadSchema), defaultValues: { name: "", @@ -202,14 +199,14 @@ export function CreateLeadModal() { export function EditLeadModal({ lead }: { lead: Lead }) { const [open, setOpen] = useState(false); const [loading, setLoading] = useState(false); - const form = useForm({ + const form = useForm({ resolver: zodResolver(createLeadSchema), defaultValues: { name: lead.name, email: lead.email || "", phone: lead.phone || "", company: lead.company || "", - status: lead.status as any, + status: lead.status as CreateLeadInput["status"], notes: lead.notes || "", }, }); diff --git a/src/components/ui/form.tsx b/src/components/ui/form.tsx index d647caa..f1ec4bc 100644 --- a/src/components/ui/form.tsx +++ b/src/components/ui/form.tsx @@ -27,15 +27,16 @@ const FormFieldContext = React.createContext( {} as FormFieldContextValue ) -const FormField = React.forwardRef< - any, - ControllerProps ->(({ ...props }, ref) => ( +const FormField = < + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ + ...props +}: ControllerProps) => ( -)) -FormField.displayName = "FormField" +) const useFormField = () => { const fieldContext = React.useContext(FormFieldContext)