Proyectos de Subversion LeadersLinked - Backend

Rev

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