AutorÃa | Ultima modificación | Ver Log |
import React from 'react'
import { axios } from '../../utils'
import { useDispatch } from 'react-redux'
import { addNotification } from '../../redux/notification/notification.actions'
import { Modal, Button } from 'react-bootstrap'
function EditModal ({
title = '',
url ='',
data={},
show = false,
isEdit = false,
children = React.Component,
onComplete = function() {},
onClose = function() {}
}) {
const dispatch = useDispatch()
const onSubmit = () => {
const formData = new FormData()
Object.entries(data)
axios.post(url, formData)
.then(({ data }) => {
if (!data.success) {
typeof data.data === 'string'
? dispatch(addNotification({style: 'danger',msg: data.data}))
: Object.entries(data.data)
.map(([key, value]) =>
value.map(err => dispatch(addNotification({style: 'danger',msg: `${key}: ${err}`})))
)
return
}
onComplete()
onClose()
})
.catch((err) => dispatch(addNotification({style: 'danger',msg: err})))
}
return (
<Modal show={show} onHide={onClose}>
<Modal.Header closeButton>
<Modal.Title>{title} - {isEdit ? 'Editar' : 'Agregar'}</Modal.Title>
</Modal.Header>
<Modal.Body>
{children}
</Modal.Body>
<Modal.Footer>
<Button variant="primary" onClick={onSubmit}>
Enviar
</Button>
<Button variant="danger" onClick={onClose}>
Cancelar
</Button>
</Modal.Footer>
</Modal >
)
}
export default EditModal