Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11139 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
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