Proyectos de Subversion LeadersLinked - Backend

Rev

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

import React, { useState } from 'react';
import { Modal, Button } from 'react-bootstrap';
import axios from 'axios';
import { addNotification } from '../../../redux/notification/notification.actions';
import { useDispatch } from 'react-redux';

const SubmitModal = ({
    children,
    closeModal = function () { },
    postLink = '',
    submitData = '',
    title = ''
}) => {

    const [error, setError] = useState('');
    const dispatch = useDispatch()

    const onSubmit = () => {

        const formData = new FormData()
        Object.entries(submitData).forEach((entries) => {
            formData.append(entries[0], entries[1])
        })

        axios.post(postLink, formData)
            .then(({ data }) => {
                if (!data.success) {
                    dispatch(addNotification({
                        style: "error",
                        msg: Object.values(data.data)[0][0],
                    }))
                    return
                }


                dispatch(addNotification({
                    style: "success",
                    msg: Object.values(data.data)[0],
                }))
                setError(null)
                closeModal()
            })
            .catch((err) => setError(err))
    };

    return (
        <Modal size="lg" show onHide={closeModal}>
            <Modal.Header closeButton>
                <Modal.Title>{title}</Modal.Title>
            </Modal.Header>
            <Modal.Body>
                <div className='form-group'>
                    <label className="form-label">{title}</label>
                    {children}
                </div>
                {error && <p>{error}</p>}
            </Modal.Body>
            <Modal.Footer>
                <Button
                    variant="primary"
                    onClick={onSubmit}
                >
                    Enviar
                </Button>
                <Button variant="danger" onClick={closeModal}>
                    Cancelar
                </Button>
            </Modal.Footer>
        </Modal >
    )
}

export default SubmitModal