浏览代码

merge

blog-new
Pavle Golubovic 3 年前
父节点
当前提交
e081ea584e
共有 2 个文件被更改,包括 33 次插入49 次删除
  1. 33
    48
      frontend/src/components/shared/JobForm.jsx
  2. 0
    1
      frontend/src/pages/Home.jsx

+ 33
- 48
frontend/src/components/shared/JobForm.jsx 查看文件

import ReCAPTCHA from 'react-google-recaptcha'; import ReCAPTCHA from 'react-google-recaptcha';
import axios from 'axios'; import axios from 'axios';


const api_url = process.env.REACT_APP_API_URL;

export default function JobForm(props) { export default function JobForm(props) {
const [sucMsg, setSucMsg] = useState(false); const [sucMsg, setSucMsg] = useState(false);
const captchaRef = useRef(null); const captchaRef = useRef(null);
initialValues={jobForm} initialValues={jobForm}
validationSchema={validationSchema} validationSchema={validationSchema}
onChange={changeFormHandler} onChange={changeFormHandler}
onSubmit={async values => {
onSubmit={values => {

setSucMsg(false);

//prep file
const prepFile = async file => { const prepFile = async file => {
if (file.size >= 2000000) { if (file.size >= 2000000) {
setErrorMsg('File too large!'); setErrorMsg('File too large!');
}; };
}); });
}; };
if (
selectedPosition === '' ||
(otherInputState === false && values.other === '')
)
setErrorMsgPosition('Position is Required');
else {
setErrorMsgPosition('');
if (jobForm.file === '') {
setErrorMsg('CV is Required');
} else {
setErrorMsg('');
if (jobForm.file.size >= 2000000) {
setErrorMsg('File too large!');
} else {
const file = {
filename: 'CV.pdf',
data: jobForm.file,
};


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!');
let data = {};


props.mg.messages.create('dilig.net', {
from: `${values.firstName} ${values.lastName} <${values.email}>`,
to: ['hr@dilig.net'],
subject: 'Applying for a position',
text: `Email: ${values.email}, Position:${values.position} ${values.other}, Cover letter: ${values.coverLetter}, Link: ${values.link} `,
html: `<p>Email: ${values.email}</p><p>Position: ${selectedPosition} ${values.other}</p><p>Cover letter: ${values.coverLetter}</p><p>Link (optional): ${values.link}</p>`,
attachment: file,
});
} else
setMsgText('Please fill reCAPTCHA and try again. Thank you!');
})
.catch(error => {
console.log(error);
});
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,
} }
} }
} }
} }
ReactGA.event('contact', { ReactGA.event('contact', {
category: 'Contact', category: 'Contact',
action: 'Job application', action: 'Job application',
}); });
}}
})}}}
> >
{props => ( {props => (
<Form onSubmit={props.handleSubmit}> <Form onSubmit={props.handleSubmit}>

+ 0
- 1
frontend/src/pages/Home.jsx 查看文件

import useDataApi from '../hooks/useDataApi'; import useDataApi from '../hooks/useDataApi';
import useAnalytics from '../hooks/useAnalytics'; import useAnalytics from '../hooks/useAnalytics';
import ReactHelmet from '../components/shared/ReactHelmet'; import ReactHelmet from '../components/shared/ReactHelmet';
import { strapiApiBuilder } from '../utils/strapiApiBuilder';


const api_url = process.env.REACT_APP_API_URL; const api_url = process.env.REACT_APP_API_URL;
// const fieldArray = [ // const fieldArray = [

正在加载...
取消
保存