|
|
|
@@ -6,11 +6,15 @@ import { ClientFormContext } from '../../context'; |
|
|
|
import { useContext, useState } from 'react'; |
|
|
|
import * as emailjs from 'emailjs-com'; |
|
|
|
import { motion } from 'framer-motion'; |
|
|
|
import axios from 'axios'; |
|
|
|
|
|
|
|
const api_url = 'http://localhost:1337'; |
|
|
|
|
|
|
|
export default function ClientForm() { |
|
|
|
//search context for prevous entry TODO |
|
|
|
const { clientForm, setClientForm } = useContext(ClientFormContext); |
|
|
|
const [sucMsg, setSucMsg] = useState(false); |
|
|
|
const [errorMsg, setErrorMsg] = useState(''); |
|
|
|
|
|
|
|
const changeFormHandler = event => { |
|
|
|
const { name, value } = event.target; |
|
|
|
@@ -20,6 +24,9 @@ export default function ClientForm() { |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const validationSchema = Yup.object({ |
|
|
|
subject: Yup.string() |
|
|
|
.min(2, "Subject too short") |
|
|
|
@@ -45,7 +52,46 @@ export default function ClientForm() { |
|
|
|
initialValues={clientForm} |
|
|
|
validationSchema={validationSchema} |
|
|
|
onSubmit={values => { |
|
|
|
const data = { |
|
|
|
|
|
|
|
let data = {}; |
|
|
|
|
|
|
|
const fetchData = async () => { |
|
|
|
axios.get(`${api_url}/api/job-submissions?filters[Email][$eq]=${values.email}`) |
|
|
|
.then((res) => { |
|
|
|
data = res.data.data[0]; |
|
|
|
console.log(data); |
|
|
|
const submitDate = new Date(data.attributes.SubmitDate); |
|
|
|
const now = new Date(); |
|
|
|
if ((now.getMonth() - submitDate.getMonth()) < 1) |
|
|
|
{ |
|
|
|
setErrorMsg('You Already sent an email'); |
|
|
|
return false; |
|
|
|
} |
|
|
|
else { |
|
|
|
|
|
|
|
fetch(`${api_url}/api/job-submissions/${data.id}`, { |
|
|
|
method: "PUT", |
|
|
|
headers: { |
|
|
|
"Content-type": "application/json; charset=UTF-8", |
|
|
|
}, |
|
|
|
body: JSON.stringify({ |
|
|
|
data: { |
|
|
|
SubmitDate: now, |
|
|
|
} |
|
|
|
}) |
|
|
|
}).then(r => r.json()).then(d => { |
|
|
|
setErrorMsg(''); |
|
|
|
return true |
|
|
|
}).catch(err => { |
|
|
|
console.log(err) |
|
|
|
return false |
|
|
|
}); |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
if (fetchData()){ |
|
|
|
const val = { |
|
|
|
Tag: values.tag, |
|
|
|
Subject: values.subject, |
|
|
|
Email: values.email, |
|
|
|
@@ -53,24 +99,26 @@ export default function ClientForm() { |
|
|
|
Lastname: values.lastName, |
|
|
|
Description: 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); |
|
|
|
}, |
|
|
|
); |
|
|
|
}} |
|
|
|
|
|
|
|
emailjs |
|
|
|
.send( |
|
|
|
process.env.REACT_APP_SERVICE_ID, |
|
|
|
process.env.REACT_APP_CLIENT_TEMPLATE_ID, |
|
|
|
val, |
|
|
|
process.env.REACT_APP_USER_ID, |
|
|
|
) |
|
|
|
.then( |
|
|
|
result => { |
|
|
|
console.log(result.text); |
|
|
|
setSucMsg(true); |
|
|
|
}, |
|
|
|
error => { |
|
|
|
console.log(error.text); |
|
|
|
}, |
|
|
|
); |
|
|
|
}} |
|
|
|
} |
|
|
|
|
|
|
|
> |
|
|
|
{props => ( |
|
|
|
<Form onSubmit={props.handleSubmit}> |