"use client"; import React, { useState } from "react"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import { learnMoreValidationSchema } from "@/utils/form"; import { LearnMoreForm, ModalStatus, SourceModal } from "@/types"; import { mailchimp } from "@/app/(auth)/actions"; import { toast } from "react-toastify"; interface ModalLearnMoreFormProps { setStatus: React.Dispatch>; } const ModalLearnMoreForm = ({ setStatus }: ModalLearnMoreFormProps) => { const [email, setEmail] = useState(""); const { register, handleSubmit, reset, formState: { errors }, } = useForm({ resolver: yupResolver(learnMoreValidationSchema), }); const submitForm = async (data: LearnMoreForm) => { setEmail(data.email); if (!data.email) { return; } setStatus(ModalStatus.Loading); try { await sendMailchimpRequest(data); setEmail(""); reset(); // await handleSendgridSubmit(data.email); setStatus(ModalStatus.Success); } catch (error) { if (error instanceof Error) { toast.error(error.message, { position: "bottom-left", autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, theme: "colored", }); } setStatus(ModalStatus.Default); } }; const sendMailchimpRequest = async (data: LearnMoreForm) => { console.log("sendMailchimpRequest call initiated"); await mailchimp({ email: data.email, first_name: "", last_name: "", phone_number: "", company_size: "", source: SourceModal.LearnMore, }); console.log("sendMailchimpRequest call success"); }; const handleSendgridSubmit = async (email: string) => { const data = { subscriberEmail: email, }; //call to the Netlify Function you created return fetch("./.netlify/functions/triggerLearnMoreEmail", { method: "POST", body: JSON.stringify({ subscriberEmail: data.subscriberEmail, }), }); }; return (
); }; export default ModalLearnMoreForm;