"use client"; import { FC, useState } from "react"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import clsx from "clsx"; import { postContacts } from "@/services/contacts"; import { useTranslations } from "next-intl"; interface Props { className?: string; } export type FormType = { name: string; email: string; phone: string; company?: string; msg: string; }; export const ContactsForm: FC = ({ className }) => { const [status, setStatus] = useState(false); const t = useTranslations(); const formSchema = z.object({ name: z.string().min(2, t("validation.nameRequired")), email: z.string().email(t("validation.emailRequired")), phone: z.string().min(8, t("validation.phoneRequired")), company: z.string().optional(), msg: z.string().min(5, t("validation.messageRequired")), }); const { register, handleSubmit, formState, reset } = useForm({ resolver: zodResolver(formSchema), defaultValues: { name: "", email: "", phone: "", company: "", msg: "", }, }); async function onSubmit(data: FormType) { try { const res = await postContacts(data); reset(); setStatus(res); } catch (error) { console.error("POST contact", error); } } return (

{t("contacts.contactUs")}

{formState.errors.name?.message}
{formState.errors.email?.message}
{formState.errors.phone?.message}
{formState.errors.company?.message}