Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
8428 stevensc 1
import React, { useState } from 'react'
8437 stevensc 2
import { useEffect } from 'react';
8428 stevensc 3
import { useForm } from 'react-hook-form';
8437 stevensc 4
import { getData } from '../../../helpers/fetchHelpers';
8428 stevensc 5
import SubmitModal from './SubmitModal'
6
 
7
const SalaryModal = ({
8
    closeModal,
9
    dataLink
10
}) => {
11
 
8449 stevensc 12
    const currencyOptions = [
13
        { label: "Pesos mexicanos", value: "MXN" }
14
    ]
8428 stevensc 15
    const [isActive, setIsActive] = useState(false)
8457 stevensc 16
    const [currency, setCurrency] = useState(currencyOptions[0].value)
17
    const { register, watch, setValue } = useForm()
8428 stevensc 18
 
8437 stevensc 19
    useEffect(() => {
20
        getData(dataLink)
8452 stevensc 21
            .then(({
22
                salary_visible,
23
                salary_currency,
24
                salary_min,
25
                salary_max }) => {
26
                setCurrency(salary_currency)
27
                setValue("salary_min", salary_min)
28
                setValue("salary_max", salary_max)
29
                salary_visible === "y" ? setIsActive(true) : setIsActive(false)
30
 
31
            })
8437 stevensc 32
    }, [])
33
 
8428 stevensc 34
    return (
35
        <SubmitModal
8449 stevensc 36
            title='Salario'
8428 stevensc 37
            closeModal={closeModal}
38
            submitData={{
8437 stevensc 39
                salary_visible: isActive ? "y" : "n",
8449 stevensc 40
                salary_currency: currency,
8451 stevensc 41
                salary_min: watch("salary_min"),
42
                salary_max: watch("salary_max")
8428 stevensc 43
            }}
44
            postLink={dataLink}
45
        >
46
            <div
8449 stevensc 47
                className={`toggle btn btn-block btn-primary ${!isActive && "off"}`}
8428 stevensc 48
                data-toggle="toggle"
49
                role="button"
50
                style={{ width: '130px' }}
51
                onClick={() => setIsActive(!isActive)}
52
            >
53
                <input
54
                    type="checkbox"
55
                    checked={isActive}
56
                />
57
                <div className="toggle-group">
8449 stevensc 58
                    <label for="status" className="btn btn-primary toggle-on">Mostrar</label>
59
                    <label for="status" className="btn btn-light toggle-off">No mostrar</label>
8428 stevensc 60
                    <span className="toggle-handle btn btn-light"></span>
61
                </div>
62
            </div>
63
            <div className='form-group'>
8449 stevensc 64
                <label className="form-label">Moneda</label>
65
                <select
66
                    className='form-control'
67
                    name="employment_type"
68
                    onChange={(e) => setCurrency(e.target.value)}
8457 stevensc 69
                    value={currency}
8449 stevensc 70
                >
71
                    {
72
                        currencyOptions.map(({ value, label }) => (
73
                            <option key={value} value={value}>{label}</option>
74
                        ))
75
                    }
76
                </select>
77
 
78
            </div>
79
            <div className='form-group'>
8428 stevensc 80
                <label className="form-label">Minimo</label>
81
                <input
82
                    type='text'
83
                    className='form-control'
8452 stevensc 84
                    disabled={!isActive}
8437 stevensc 85
                    name='salary_min'
8428 stevensc 86
                    ref={register({
87
                        required: true,
88
                        valueAsNumber: true,
89
                        min: 1
90
                    })}
8452 stevensc 91
                />
8428 stevensc 92
            </div>
93
            <div className='form-group'>
94
                <label className="form-label">Maximo</label>
95
                <input
96
                    type='text'
97
                    className='form-control'
8452 stevensc 98
                    disabled={!isActive}
8437 stevensc 99
                    name='salary_max'
8428 stevensc 100
                    ref={register({
101
                        required: true,
102
                        valueAsNumber: true,
8437 stevensc 103
                        validate: value => value > watch("salary_min")
8428 stevensc 104
                    })}
105
                />
106
            </div>
107
        </SubmitModal>
108
    )
109
}
110
 
111
export default SalaryModal