Proyectos de Subversion LeadersLinked - Backend

Rev

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

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