source: jobvista-frontend/src/views/applications/ViewApplicationDetails.js@ b248810

main
Last change on this file since b248810 was 28b3398, checked in by 223021 <daniel.ilievski.2@…>, 3 weeks ago

Implemented job application functionality, added job advertisement filtering and replaced text areas with editors

  • Property mode set to 100644
File size: 3.6 KB
Line 
1import React, {useEffect, useState} from "react";
2import "../job_advertisements/Form.css";
3
4import 'react-responsive-modal/styles.css';
5import {Modal} from 'react-responsive-modal';
6import Select from "react-select";
7
8//Validation
9import * as yup from "yup";
10import {yupResolver} from "@hookform/resolvers/yup";
11import {Controller, useForm} from "react-hook-form";
12
13
14import {employmentStatusOptions, industryOptions, jobTypeOptions} from "../selectOptions";
15import {useDispatch, useSelector} from "react-redux";
16import {JobAdvertisementActions} from "../../redux/actions/jobAdvertisementActions";
17import Roles from "../../enumerations/Roles";
18import {ApplicationActions} from "../../redux/actions/applicationActions";
19
20
21export const ViewApplicationDetails = (props) => {
22 const {application} = props
23 const [modal, setModal] = useState(false);
24 const dispatch = useDispatch();
25 const auth = useSelector(state => state.auth.currentUser)
26 const [resumeUrl, setResumeUrl] = useState("");
27
28 //const [resumeFile, setResumeFile] = useState(null);
29 const toggleModal = () => {
30 setModal(!modal);
31 };
32
33 useEffect(() => {
34 if(application) {
35 dispatch(ApplicationActions.downloadResume(application.fileName, (success, response) => {
36 if(success) {
37 setResumeUrl(response);
38 }
39 }))
40 }
41 }, [application])
42
43 return (<div className="modal-wrap">
44 <button onClick={toggleModal} className="application-button">View application</button>
45 <Modal open={modal} onClose={toggleModal} center >
46 <div className="head-modal">
47 <h3>{application.jobSeekerName}'s application for {application.jobAdTitle}</h3>
48 <i className="fa-solid fa-x btn-close-modal" onClick={toggleModal}></i>
49 </div>
50
51 <div className="modal-content" >
52 <form>
53 <div className="row">
54 <div className="col-md-6">
55 <label className="label">Why are you interested in joining our company?</label>
56 <textarea disabled type="text" defaultValue={application.questionAnswers[0]} disabled placeholder="Write your answer here..." className="applictaion-textarea"/>
57
58
59 <label className="label">What makes you a good fit for this position?</label>
60 <textarea disabled type="text" defaultValue={application.questionAnswers[1]} placeholder="Write your answer here..." className="applictaion-textarea"/>
61
62
63 <label className="label">What do you hope to achieve in your first 6 months in this role?</label>
64 <textarea disabled type="text" defaultValue={application.questionAnswers[2]} placeholder="Write your answer here..." className="applictaion-textarea"/>
65
66 </div>
67 <div className="col-md-6">
68 <label htmlFor="start">Curriculum vitae (CV)</label>
69 <br/>
70 <a className="resume-link" href={resumeUrl} target="_blank" rel="noopener noreferrer">{application.fileName}</a>
71 <br/>
72
73 <br/>
74 <label className="label">Message to the recruiter</label>
75 <textarea disabled type="text" defaultValue={application.message} placeholder="Optional..." className="applictaion-textarea"/>
76
77 </div>
78 </div>
79
80 </form>
81 </div>
82 </Modal>
83 </div>)
84}
Note: See TracBrowser for help on using the repository browser.