"use client"; import { useState } from "react"; import { zodResolver } from "@hookform/resolvers/zod"; import { useTranslations } from "next-intl"; import { FormProvider, useForm } from "react-hook-form"; import { z } from "zod"; import InfoMessage from "@/components/InfoMessage"; import { clearMessage } from "@/components/InfoMessage"; import { TextAreaField } from "@/components/form/TextAreaField"; import { TextField } from "@/components/form/TextField"; import { contactUsSchema } from "@/schemas"; import { trpc } from "@/utils/trpc"; type TournamentFormValues = z.infer; const ContactForm = () => { const t = useTranslations("Contact"); const contactUs = trpc.contactUs.useMutation(); const [responseMessage, setResponseMessage] = useState({ isSuccessful: false, message: "", }); const form = useForm({ resolver: zodResolver(contactUsSchema), }); const onSubmit = async (data: TournamentFormValues) => { try { await contactUs.mutateAsync(data); setResponseMessage({ isSuccessful: true, message: t("success"), }); clearMessage(setResponseMessage); form.reset(); } catch (err: unknown) { console.log(err); setResponseMessage({ isSuccessful: true, message: t("failure"), }); clearMessage(setResponseMessage); } }; return (
); }; export default ContactForm;