"use client"; import { FC, useState } from "react"; import { Form, useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import clsx from "clsx"; import { postContacts } from "@/services/contacts"; interface Props { className?: string; } const formSchema = z.object({ name: z.string().min(2, "Имя необходимо"), email: z.string().email("Email необходим"), phone: z.string().min(8, "Номер телефона необходим"), company: z.string().optional(), msg: z.string().min(5, "Сообщение необходимо"), }); export type FormType = z.infer; export const ContactsForm: FC = ({ className }) => { const [status, setStatus] = useState(false); 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 (

Связаться с нами

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