import React, {useState} from "react"; import "./Form.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"; export const AddJobAdModal = () => { const [modal, setModal] = useState(false); const dispatch = useDispatch(); const auth = useSelector(state => state.auth.currentUser) const toggleModal = () => { setModal(!modal); }; const schema = yup.object().shape({ title: yup.string().required("Please enter a title"), description: yup.string().required("Please enter a description"), industry: yup.mixed().required("Select industry"), startingSalary: yup.number().required("Please enter the starting salary"), jobType: yup.mixed().required("Select job type"), employmentStatus: yup.mixed().required("Select employment status"), }) const {register, handleSubmit, control, formState: {errors}} = useForm({ resolver: yupResolver(schema), }); const addJobAdvertisement = async (values) => { //const description = values.description.replace(/\n/g, "\\n"); try { dispatch(JobAdvertisementActions.addJobAdvertisement( { email: auth.email, title: values.title, description: values.description, industry: values.industry.value, startingSalary: values.startingSalary, activeUntil: values.date, jobType: values.jobType.value, employmentStatus: values.employmentStatus.value, }, (success, response) => { if(success) { console.log("Job Advertisement added") toggleModal() } } )) } catch (err) { console.error(err) } } let minimumDate = new Date(); minimumDate.setDate(minimumDate.getDate() + 1); return (

Post Job Advertisement

{errors.title?.message}