import React, {useEffect, useState} from "react"; import "../shared_css/Modal.css"; import 'react-responsive-modal/styles.css'; import {Modal} from 'react-responsive-modal'; import Select from "react-select"; //Validation import * as yup from "yup"; import {yupResolver} from "@hookform/resolvers/yup"; import {Controller, useForm} from "react-hook-form"; import {employmentStatusOptions, industryOptions, jobTypeOptions} from "../selectOptions"; import {useDispatch, useSelector} from "react-redux"; import {JobAdvertisementActions} from "../../redux/actions/jobAdvertisementActions"; import Roles from "../../enumerations/Roles"; import {ApplicationActions} from "../../redux/actions/applicationActions"; import {notifyJobAdApply, notifyJobAdUpdate} from "../../utils/toastUtils"; export const ApplicationDetailsModal = (props) => { const {application} = props const [modal, setModal] = useState(false); const dispatch = useDispatch(); const auth = useSelector(state => state.auth.currentUser) const [resumeUrl, setResumeUrl] = useState(""); const [additionalFileUrls, setAdditionalFileUrls] = useState([]); const [additionalFiles, setAdditionalFiles] = useState(null); const toggleModal = () => { setModal(!modal); }; const {register, handleSubmit, control, formState: {errors}} = useForm(); useEffect(() => { if (application) { ApplicationActions.downloadResume(application.id, (success, response) => { if (success) { setResumeUrl(response); if (application.additionalFileNames.length > 0) { ApplicationActions.downloadAdditionalFiles(application.id, (success2, response) => { if (success2) { setAdditionalFileUrls(response); } }) } } }) } }, []) const updateApplication = async () => { try { const formData = new FormData(); if (additionalFiles && additionalFiles.length > 0) { for (let i = 0; i < additionalFiles.length; i++) { formData.append('additionalFiles', additionalFiles[i]); } } dispatch(ApplicationActions.updateApplication(application.id, formData, (success) => { if (success) { toggleModal() window.location.reload() } })) } catch (err) { console.error(err) } } function getFileName(path) { let fileName = path.split('\\').pop().split('/').pop(); fileName = fileName.trim(); return fileName; } return (
{auth.role === Roles.RECRUITER ? : (application.status === "UNDER_REVIEW" && application.response.length > 0 && additionalFileUrls.length === 0) ? : }

{application.jobSeekerName}'s application for {application.jobAdTitle}