Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15209 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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