Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8478 | Rev 8480 | 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,
10
    editUrl,
11
    action
12
}) => {
13
 
8473 stevensc 14
    const { handleSubmit, register, setValue } = 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
 
8479 stevensc 19
    const onSubmit = (data) => {
8468 stevensc 20
 
8479 stevensc 21
        console.log(data)
22
        console.log(editUrl)
23
       /*  const data = new FormData()
24
        data.append("industry_id", industry)
25
 
8468 stevensc 26
        axios.post(editUrl, data)
27
            .then(({ data }) => {
28
                if (!data.success) {
29
                    return setError(data.data)
30
                }
31
                action(data.data.industry)
32
            })
33
            .then(() => {
34
                setError(null)
35
                closeModal()
36
            })
8479 stevensc 37
            .catch((err) => console.log(err)) */
8468 stevensc 38
    }
39
 
40
    useEffect(() => {
41
        getData(editUrl)
8473 stevensc 42
            .then(({ industries, industry_id }) => {
8470 stevensc 43
                Object.entries(industries).map(([key, value]) => {
44
                    setIndustries(prev => [...prev, { value: key, name: value }])
45
                })
8473 stevensc 46
 
47
                setCurrentIndustry(industry_id)
8470 stevensc 48
            })
8468 stevensc 49
    }, [isOpen]);
50
 
8473 stevensc 51
    useEffect(() => {
52
        setValue("industry", industries.find(el => el.value === currentIndustry))
53
    }, [industries]);
54
 
8468 stevensc 55
    return (
56
        <Modal
57
            size="md"
58
            show={isOpen}
59
            onHide={closeModal}
60
            autoFocus={false}
61
        >
62
            <Modal.Header closeButton>
63
                <Modal.Title>Cambiar</Modal.Title>
64
            </Modal.Header>
65
            <form onSubmit={handleSubmit(onSubmit)}>
66
                <Modal.Body>
67
                    <div className="mb-3">
8473 stevensc 68
                        <label className="form-label">Industria</label>
8470 stevensc 69
                        <select
70
                            className='form-control'
8468 stevensc 71
                            name="industry"
72
                            ref={register}
8470 stevensc 73
                        >
74
                            {
75
                                industries.map(({ value, name }) => (
76
                                    <option key={value} value={value}>{name}</option>
77
                                ))
78
                            }
79
                        </select>
8468 stevensc 80
                    </div>
81
                    {error && <p>{error}</p>}
82
                </Modal.Body>
83
                <Modal.Footer>
84
                    <Button
85
                        variant="primary"
86
                        type="submit"
87
                    >
88
                        Enviar
89
                    </Button>
90
                    <Button
91
                        variant="default"
92
                        onClick={closeModal}
93
                    >
94
                        Cancelar
95
                    </Button>
96
                </Modal.Footer>
97
            </form>
98
        </Modal >
99
    )
100
}
101
 
102
export default IndustryModal