"use client"; import { useState, FormEvent } from "react"; import { useTranslations } from "next-intl"; import sendMail from "@/lib/sendMail"; import { errorLog } from "@/utils/logger"; import useContactForm from "@/hooks/useContactForm"; const ContactForm = () => { const t = useTranslations("Contact"); const { values, handleChange, resetForm } = useContactForm(); const [responseMessage, setResponseMessage] = useState({ isSuccessful: false, message: "", }); const [isSending, setIsSending] = useState(false); const clearMessage = () => { setTimeout(() => { setResponseMessage({ isSuccessful: false, message: "", }); }, 10000); }; const handleEmailSubmit = async (e: FormEvent) => { e.preventDefault(); setIsSending(true); try { const response = await sendMail(values); if (response.status === 250) { setResponseMessage({ isSuccessful: true, message: t("success"), }); resetForm(); clearMessage(); setIsSending(false); } } catch (error) { errorLog(error); setResponseMessage({ isSuccessful: false, message: t("failure"), }); clearMessage(); setIsSending(false); } }; const infoMessage = (

{responseMessage.message}

); return ( <>
{infoMessage}
); }; export default ContactForm;