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