Proyectos de Subversion LeadersLinked - Backend

Rev

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