| 11131 |
stevensc |
1 |
import React, { useState, useEffect } from 'react'
|
|
|
2 |
import Datetime from 'react-datetime'
|
|
|
3 |
import { useForm } from 'react-hook-form'
|
|
|
4 |
import { getData } from '../../../helpers/fetchHelpers'
|
|
|
5 |
import SearchLocationInput from '../../../shared/SearchLocationInput'
|
|
|
6 |
import SubmitModal from './SubmitModal'
|
|
|
7 |
|
|
|
8 |
const jobTypeOptions = [
|
|
|
9 |
{ label: 'Tiempo completo', value: 'f' },
|
|
|
10 |
{ label: 'Tiempo parcial', value: 'p' },
|
|
|
11 |
{ label: 'Contratado', value: 'c' },
|
|
|
12 |
{ label: 'Temporal', value: 't' },
|
|
|
13 |
]
|
|
|
14 |
|
|
|
15 |
const AddModal = ({ closeModal, dataLink, googleApiKey }) => {
|
|
|
16 |
|
|
|
17 |
const { register, watch } = useForm()
|
|
|
18 |
const [year, setYear] = useState()
|
|
|
19 |
const [value, setValue] = useState('')
|
|
|
20 |
const [data, setData] = useState({})
|
|
|
21 |
const [jobCategoryOptions, setJobsCategoryOptions] = useState([])
|
|
|
22 |
|
|
|
23 |
useEffect(() => {
|
|
|
24 |
getData(dataLink)
|
|
|
25 |
.then(({ job_categories }) => {
|
|
|
26 |
|
|
|
27 |
Object.entries(job_categories).map(([key, value]) => {
|
|
|
28 |
setJobsCategoryOptions(prev => [...prev, { value: key, name: value }])
|
|
|
29 |
})
|
|
|
30 |
})
|
|
|
31 |
}, [dataLink])
|
|
|
32 |
|
|
|
33 |
return (
|
|
|
34 |
<SubmitModal
|
|
|
35 |
closeModal={closeModal}
|
|
|
36 |
postLink={dataLink}
|
|
|
37 |
submitData={{
|
|
|
38 |
...data,
|
|
|
39 |
title: watch('title'),
|
|
|
40 |
employment_type: watch('employment_type'),
|
|
|
41 |
last_date_of_application: year,
|
|
|
42 |
job_category_id: watch('job_category-id'),
|
|
|
43 |
add_location_search: value
|
|
|
44 |
}}
|
|
|
45 |
title="Nuevo empleo"
|
|
|
46 |
>
|
|
|
47 |
<div className="form-group">
|
|
|
48 |
<label>Título</label>
|
|
|
49 |
<input type='text' name='tile' ref={register({ required: true })} />
|
|
|
50 |
</div>
|
|
|
51 |
<div className="form-group">
|
|
|
52 |
<label>Tipo de empleo</label>
|
|
|
53 |
<select
|
|
|
54 |
className='form-control'
|
|
|
55 |
name="employment_type"
|
|
|
56 |
ref={register({ required: true })}
|
|
|
57 |
>
|
|
|
58 |
{
|
|
|
59 |
jobTypeOptions.map(({ value, label }) => (
|
|
|
60 |
<option key={value} value={value}>{label}</option>
|
|
|
61 |
))
|
|
|
62 |
}
|
|
|
63 |
</select>
|
|
|
64 |
</div>
|
|
|
65 |
<div className="form-group">
|
|
|
66 |
<label>Tipo de empleo</label>
|
|
|
67 |
<Datetime
|
|
|
68 |
dateFormat="DD-MM-YYYY"
|
|
|
69 |
timeFormat={false}
|
|
|
70 |
onChange={(e) =>
|
|
|
71 |
setYear(new Intl.DateTimeFormat({ year: 'numeric', month: 'numeric', day: 'numeric' }).format(e.toDate()))
|
|
|
72 |
}
|
|
|
73 |
inputProps={{ className: 'form-control' }}
|
|
|
74 |
closeOnSelect
|
|
|
75 |
/>
|
|
|
76 |
</div>
|
|
|
77 |
<div className="form-group">
|
|
|
78 |
<label>Categoría de Empleo</label>
|
|
|
79 |
<select
|
|
|
80 |
className='form-control'
|
|
|
81 |
name="job_category-id"
|
|
|
82 |
ref={register({ required: true })}
|
|
|
83 |
>
|
|
|
84 |
{
|
|
|
85 |
jobCategoryOptions.map(({ value, name }) => (
|
|
|
86 |
<option key={value} value={value}>{name}</option>
|
|
|
87 |
))
|
|
|
88 |
}
|
|
|
89 |
</select>
|
|
|
90 |
</div>
|
|
|
91 |
<SearchLocationInput
|
|
|
92 |
value={value}
|
|
|
93 |
setValue={setValue}
|
|
|
94 |
googleApiKey={googleApiKey}
|
|
|
95 |
updateData={setData}
|
|
|
96 |
/>
|
|
|
97 |
</SubmitModal >
|
|
|
98 |
)
|
|
|
99 |
}
|
|
|
100 |
|
|
|
101 |
export default AddModal
|