Proyectos de Subversion LeadersLinked - Backend

Rev

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