"use client" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { z } from "zod" import { useState } from "react" const schema = z.object({ firstName: z.string().min(1, "First name is required"), lastName: z.string().min(1, "Last name is required"), email: z.string().email("Please enter a valid email"), country: z.string().min(1, "Country is required"), phone: z.string().min(1, "Phone number is required"), company: z.string().min(1, "Company is required"), companySize: z.string().min(1, "Please select company size"), message: z.string().min(10, "Message must be at least 10 characters"), }) type FormData = z.infer export default function ContactForm() { const [status, setStatus] = useState<"idle" | "success" | "error">("idle") const { register, handleSubmit, formState: { errors, isSubmitting }, reset, } = useForm({ resolver: zodResolver(schema), }) const onSubmit = async (data: FormData) => { try { await new Promise((resolve) => setTimeout(resolve, 1000)) console.log("Contact form:", data) setStatus("success") reset() } catch { setStatus("error") } } if (status === "success") { return (

Thank you! We'll get back to you soon

We have received your message and will get back to you as soon as possible.

) } return (