Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
6478 stevensc 1
import axios from 'axios'
2
import React, { useEffect, useState } from 'react'
3
import { Modal, Button } from 'react-bootstrap'
8516 stevensc 4
import { useForm } from 'react-hook-form'
6478 stevensc 5
import { getData } from '../../../helpers/fetchHelpers'
6
 
8516 stevensc 7
const IndustryModal = ({
6478 stevensc 8
    isOpen,
9
    closeModal,
8516 stevensc 10
    editUrl,
6478 stevensc 11
    action
12
}) => {
13
 
8516 stevensc 14
    const { handleSubmit, register } = useForm()
15
    const [error, setError] = useState(null);
6478 stevensc 16
    const [companySizes, setCompanySizes] = useState([]);
8516 stevensc 17
    const [currentCompanySizeId, setCurrentCompanySizeId] = useState("");
6478 stevensc 18
 
8516 stevensc 19
    const onSubmit = ({ company_size }) => {
20
 
6478 stevensc 21
        const data = new FormData()
8516 stevensc 22
        data.append("company_size_id", company_size)
6478 stevensc 23
 
8516 stevensc 24
        axios.post(editUrl, data)
6478 stevensc 25
            .then(({ data }) => {
26
                if (!data.success) {
8516 stevensc 27
                    return setError("Error en la respuesta")
6478 stevensc 28
                }
8516 stevensc 29
                action(data.data.company_size)
6478 stevensc 30
            })
31
            .then(() => {
32
                setError(null)
33
                closeModal()
34
            })
35
            .catch((err) => console.log(err))
36
    }
37
 
38
    useEffect(() => {
8516 stevensc 39
        getData(editUrl)
40
            .then(({ company_sizes, company_size_id }) => {
41
                Object.entries(company_sizes).map(([key, value]) => {
42
                    setCompanySizes(prev => [...prev, { value: key, name: value }])
43
                })
44
 
45
                setCurrentCompanySizeId(company_size_id)
46
            })
6478 stevensc 47
    }, [isOpen]);
48
 
49
    return (
50
        <Modal
51
            size="md"
52
            show={isOpen}
53
            onHide={closeModal}
54
            autoFocus={false}
55
        >
56
            <Modal.Header closeButton>
57
                <Modal.Title>Cambiar</Modal.Title>
58
            </Modal.Header>
8516 stevensc 59
            <form onSubmit={handleSubmit(onSubmit)}>
6478 stevensc 60
                <Modal.Body>
61
                    <div className="mb-3">
62
                        <label className="form-label">Tamaño de la empresa</label>
8516 stevensc 63
                        <select
64
                            className='form-control'
65
                            name="company_size"
66
                            ref={register}
67
                        >
68
                            {
69
                                companySizes.map(({ value, name }) => (
70
                                    <option key={value} value={value}>{name}</option>
71
                                ))
72
                            }
73
                        </select>
6478 stevensc 74
                    </div>
75
                    {error && <p>{error}</p>}
76
                </Modal.Body>
77
                <Modal.Footer>
78
                    <Button
79
                        variant="primary"
80
                        type="submit"
81
                    >
82
                        Enviar
83
                    </Button>
84
                    <Button
85
                        variant="default"
86
                        onClick={closeModal}
87
                    >
88
                        Cancelar
89
                    </Button>
90
                </Modal.Footer>
91
            </form>
92
        </Modal >
93
    )
94
}
95
 
8516 stevensc 96
export default IndustryModal