import React, { useRef } from 'react'; import TagInput from '../TagInput'; import img from '../../assets/images/Inqueries.png'; import * as Yup from 'yup'; import { Formik, Form, ErrorMessage } from 'formik'; import { ClientFormContext } from '../../context'; import { useContext, useState } from 'react'; import * as emailjs from 'emailjs-com'; import { motion } from 'framer-motion'; import ReactGA from 'react-ga4'; import ReCAPTCHA from 'react-google-recaptcha'; import axios from 'axios'; export default function ClientForm() { //search context for prevous entry TODO const { clientForm, setClientForm } = useContext(ClientFormContext); const [sucMsg, setSucMsg] = useState(false); const captchaRef = useRef(null); const [msgText, setMsgText] = useState(''); const changeFormHandler = event => { const { name, value } = event.target; setClientForm({ ...clientForm, [name]: value, }); }; const validationSchema = Yup.object({ subject: Yup.string() .min(2, 'Subject too short') .max(50, 'Subject too long') .required('Subject is Required'), email: Yup.string().email('Invalid email format').required('Email is Required'), firstName: Yup.string() .min(2, 'First name too short') .max(50, 'First name too long') .required('First Name is Required'), lastName: Yup.string() .min(2, 'Last name too short') .max(50, 'Last name too long') .required('Last Name is Required'), description: Yup.string() .trim() .min(2, 'Description too short') .required('Description is Required'), }); return (
{ const data = { Tag: values.tag, Subject: values.subject, Email: values.email, Firstname: values.firstName, Lastname: values.lastName, Description: values.description, }; const token = captchaRef.current.getValue(); captchaRef.current.reset(); if (token.length === 0) { setSucMsg(true); setMsgText('Please fill reCAPTCHA and try again. Thank you!'); } else { await axios .post(`${process.env.REACT_APP_CAPTCHA_API}/verify-token`, { token }) .then(res => { setSucMsg(true); if (res.data.data.success) { setMsgText('Submission Succesful! Thank you!'); // mg.messages.create('dilig.net', { // from: `${values.firstName} ${values.lastName} <${values.email}>`, // to: ['nikola.tasic@dilig.net'], // subject: `${values.subject}`, // text: `${values.description}`, // html: `

${values.description}

`, // }); emailjs .send( process.env.REACT_APP_SERVICE_ID, process.env.REACT_APP_CLIENT_TEMPLATE_ID, data, process.env.REACT_APP_USER_ID, ) .then( result => { console.log(result.text); setSucMsg(true); }, error => { console.log(error.text); }, ); } else setMsgText('Please fill reCAPTCHA and try again. Thank you!'); }) .catch(error => { console.log(error); }); } ReactGA.event('contact', { category: 'Contact', action: 'Business Inquiry', }); }} > {props => (
{/*
*/}
{sucMsg && (
{msgText}
)}
)}
Our Team's image
); }