import React, {useState} from "react"; import "../shared_css/Modal.css"; import 'react-responsive-modal/styles.css'; import {Modal} from 'react-responsive-modal'; //Validation import * as yup from "yup"; import {yupResolver} from "@hookform/resolvers/yup"; import {Controller, useForm} from "react-hook-form"; import {useDispatch, useSelector} from "react-redux"; import Roles from "../../enumerations/Roles"; import {ApplicationActions} from "../../redux/actions/applicationActions"; import {notifyJobAdApply} from "../../utils/toastUtils"; export const ApplyToJobAdModal = (props) => { const {jobAd, role} = props const [modal, setModal] = useState(false); const dispatch = useDispatch(); const auth = useSelector(state => state.auth.currentUser) const [resumeFile, setResumeFile] = useState(null); const toggleModal = () => { setModal(!modal); }; const schema = yup.object().shape({ answerOne: yup.string().required("Please answer the question"), answerTwo: yup.string().required("Please answer the question"), answerThree: yup.string().required("Please answer the question"), messageToRecruiter: yup.string(), }) const {register, handleSubmit, control, formState: {errors}} = useForm({ resolver: yupResolver(schema), }); const submitApplication = async (values) => { try { const formData = new FormData(); formData.append('jobSeekerId', auth.id); formData.append('jobAdId', jobAd.id); formData.append('resumeFile', resumeFile); formData.append('answerOne', values.answerOne); formData.append('answerTwo', values.answerTwo); formData.append('answerThree', values.answerThree); formData.append('messageToRecruiter', values.messageToRecruiter); dispatch(ApplicationActions.submitApplication( formData, (success) => { if (success) { toggleModal() notifyJobAdApply() } } )) } catch (err) { console.error(err) } } let minimumDate = new Date(); minimumDate.setDate(minimumDate.getDate() + 1); return (
{role === Roles.JOBSEEKER && <> {jobAd.active && } {!jobAd.active && } }

Applying to {jobAd.title} at {jobAd.recruiterName}