Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
7116 stevensc 1
import React, { useState } from 'react';
7107 stevensc 2
import { Modal, Button } from 'react-bootstrap';
7110 stevensc 3
import axios from 'axios';
7777 stevensc 4
import { addNotification } from '../../../redux/notification/notification.actions';
5
import { useDispatch } from 'react-redux';
7107 stevensc 6
 
7
const SubmitModal = ({
8
    children,
7112 stevensc 9
    closeModal = function () { },
10
    postLink = '',
7107 stevensc 11
    submitData = '',
7116 stevensc 12
    title = ''
7107 stevensc 13
}) => {
14
 
15
    const [error, setError] = useState('');
7777 stevensc 16
    const dispatch = useDispatch()
7107 stevensc 17
 
7113 stevensc 18
    const onSubmit = () => {
7107 stevensc 19
 
7119 stevensc 20
        const formData = new FormData()
7118 stevensc 21
        Object.entries(submitData).forEach((entries) => {
22
            formData.append(entries[0], entries[1])
7119 stevensc 23
        })
7118 stevensc 24
 
7119 stevensc 25
        axios.post(postLink, formData)
7107 stevensc 26
            .then(({ data }) => {
27
                if (!data.success) {
7777 stevensc 28
                    dispatch(addNotification({
29
                        style: "error",
30
                        msg: Object.values(data.data)[0][0],
31
                    }))
32
                    return
7107 stevensc 33
                }
7116 stevensc 34
 
7777 stevensc 35
 
36
                dispatch(addNotification({
37
                    style: "success",
38
                    msg: Object.values(data.data)[0],
39
                }))
7107 stevensc 40
                setError(null)
41
                closeModal()
42
            })
43
            .catch((err) => setError(err))
44
    };
45
 
46
    return (
47
        <Modal size="lg" show onHide={closeModal}>
7113 stevensc 48
            <Modal.Header closeButton>
7116 stevensc 49
                <Modal.Title>{title}</Modal.Title>
7113 stevensc 50
            </Modal.Header>
51
            <Modal.Body>
7116 stevensc 52
                <div className='form-group'>
53
                    <label className="form-label">{title}</label>
54
                    {children}
55
                </div>
56
                {error && <p>{error}</p>}
7113 stevensc 57
            </Modal.Body>
58
            <Modal.Footer>
59
                <Button
60
                    variant="primary"
61
                    onClick={onSubmit}
62
                >
63
                    Enviar
64
                </Button>
65
                <Button variant="danger" onClick={closeModal}>
66
                    Cancelar
67
                </Button>
68
            </Modal.Footer>
7107 stevensc 69
        </Modal >
70
    )
71
}
72
 
73
export default SubmitModal