Pavle Golubovic 3 лет назад
Родитель
Сommit
f8ec64c56f
2 измененных файлов: 112 добавлений и 70 удалений
  1. 67
    19
      frontend/src/components/shared/ClientForm.jsx
  2. 45
    51
      frontend/src/components/shared/JobForm.jsx

+ 67
- 19
frontend/src/components/shared/ClientForm.jsx Просмотреть файл

@@ -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}>

+ 45
- 51
frontend/src/components/shared/JobForm.jsx Просмотреть файл

@@ -51,20 +51,7 @@ export default function JobForm(props) {
});
}

const date = new Date();

let day = date.getDate().toString().padStart(2, '0');
let diffMonth = date.getMonth().toString().padStart(2, '0');
let year = date.getFullYear();

let period = `${year}-${diffMonth}-${day}`;




useEffect(() => {
//console.log(hookdata);
})

useEffect(() => {
if (jobForm.file !== '') {
@@ -139,7 +126,8 @@ export default function JobForm(props) {
const now = new Date();
if ((now.getMonth() - submitDate.getMonth()) < 1)
{
setErrorMsg('you Already sent an email');
setErrorMsg('You Already sent an email');
return false
}
else {
@@ -153,51 +141,57 @@ export default function JobForm(props) {
SubmitDate: now,
}
})
}).then(r => r.json()).then(d => {
console.log("d", d);
}).catch(err => console.log(err));
}).then(r => r.json()).then(() => {
setErrorMsg('');
return true;
}).catch(err => {
return false
});
}
});
};

fetchData();

// if (jobForm.file === '') {
// setErrorMsg('CV is Required');
// } else {
if (jobForm.file === '') {
setErrorMsg('CV is Required');
} else {
if (fetchData()) {
prepFile(jobForm.file).then(res => {
const newtemplateParams = {
Position: values.position,
Other: values.other,
Firstname: values.firstName,
Lastname: values.lastName,
Coverletter: values.coverLetter,
Email: values.email,
Link: values.link,
File: res,
};
emailjs
.send(
process.env.REACT_APP_SERVICE_ID,
process.env.REACT_APP_JOB_TEMPLATE_ID,
newtemplateParams,
process.env.REACT_APP_USER_ID,
)
.then(
result => {
console.log(result.text);
setSucMsg(true);
},
error => {
console.log(error.text);
},
);
});
}
// setErrorMsg('');
// prepFile(jobForm.file).then(res => {
// const newtemplateParams = {
// Position: values.position,
// Other: values.other,
// Firstname: values.firstName,
// Lastname: values.lastName,
// Coverletter: values.coverLetter,
// Email: values.email,
// Link: values.link,
// File: res,
// };
// emailjs
// .send(
// process.env.REACT_APP_SERVICE_ID,
// process.env.REACT_APP_JOB_TEMPLATE_ID,
// newtemplateParams,
// process.env.REACT_APP_USER_ID,
// )
// .then(
// result => {
// console.log(result.text);
// setSucMsg(true);
// },
// error => {
// console.log(error.text);
// },
// );
// });
// }
}
}}
>
{props => (

Загрузка…
Отмена
Сохранить