Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8051 | Rev 8063 | 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",
8060 stevensc 30
                        msg: typeof Object.values(data.data) === "string"
8051 stevensc 31
                            ? Object.values(data.data)[0]
32
                            : Object.values(data.data)[0][0]
7777 stevensc 33
                    }))
34
                    return
7107 stevensc 35
                }
7116 stevensc 36
 
7777 stevensc 37
 
38
                dispatch(addNotification({
39
                    style: "success",
8051 stevensc 40
                    msg: "Envio completado"
7777 stevensc 41
                }))
7107 stevensc 42
                setError(null)
43
                closeModal()
44
            })
45
            .catch((err) => setError(err))
46
    };
47
 
48
    return (
49
        <Modal size="lg" show onHide={closeModal}>
7113 stevensc 50
            <Modal.Header closeButton>
7116 stevensc 51
                <Modal.Title>{title}</Modal.Title>
7113 stevensc 52
            </Modal.Header>
53
            <Modal.Body>
7116 stevensc 54
                <div className='form-group'>
55
                    <label className="form-label">{title}</label>
56
                    {children}
57
                </div>
58
                {error && <p>{error}</p>}
7113 stevensc 59
            </Modal.Body>
60
            <Modal.Footer>
61
                <Button
62
                    variant="primary"
63
                    onClick={onSubmit}
64
                >
65
                    Enviar
66
                </Button>
67
                <Button variant="danger" onClick={closeModal}>
68
                    Cancelar
69
                </Button>
70
            </Modal.Footer>
7107 stevensc 71
        </Modal >
72
    )
73
}
74
 
75
export default SubmitModal