"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;