Rev 16646 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React from "react";
import axios from "axios";
import { Modal } from "react-bootstrap";
import { useDispatch } from "react-redux";
import { addNotification } from "../redux/notification/notification.actions";
const DeleteModal = ({
isOpen = false,
closeModal = function () {},
title = "Estas seguro?",
action,
onComplete,
url,
message,
}) => {
const dispatch = useDispatch();
const onSubmit = () => {
if (!url && action) {
dispatch(action());
closeModal();
return;
}
if (!url && onComplete) {
onComplete();
closeModal();
return;
}
axios
.post(url)
.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;
}
action && dispatch(action());
onComplete && onComplete();
closeModal();
dispatch(
addNotification({
style: "success",
msg: message ? message : "Se ha eliminado con exito",
})
);
})
.catch(() =>
dispatch(
addNotification({
style: "danger",
msg: "Ha ocurrido un error",
})
)
);
};
return (
<Modal size="sm" show={isOpen} onHide={closeModal} autoFocus={false}>
<Modal.Body>
<h3>{title}</h3>
</Modal.Body>
<Modal.Footer>
<button className="btn btn-primary" onClick={onSubmit}>
Aceptar
</button>
<button className="btn btn-secondary" onClick={closeModal}>
Cancelar
</button>
</Modal.Footer>
</Modal>
);
};
export default DeleteModal;