Rev 15208 | Ir a la última revisión | 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 (<Modalsize="md"show={isOpen}onHide={closeModal}autoFocus={false}><Modal.Body><h3>{title}</h3></Modal.Body><Modal.Footer><buttonclassName='btn btn-primary'onClick={onSubmit}>Sí</button><buttonclassName='btn btn-secondary'onClick={closeModal}>No</button></Modal.Footer></Modal >)}export default DeleteModal