Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15520 stevensc 1
 
2
import React from 'react'
3
import { axios } from '../../utils'
4
import { useDispatch } from 'react-redux'
5
import { addNotification } from '../../redux/notification/notification.actions'
6
import { Modal, Button } from 'react-bootstrap'
7
 
8
function EditModal ({
9
	title = '',
10
	url ='',
11
	data={},
12
	show = false,
13
	isEdit = false,
14
	children = React.Component,
15
	onComplete = function() {},
16
	onClose = function() {}
17
}) {
18
	const dispatch = useDispatch()
19
 
20
	const onSubmit = () => {
21
		const formData = new FormData()
22
 
23
		Object.entries(data)
24
		axios.post(url, formData)
25
			.then(({ data }) => {
26
				if (!data.success) {
27
					typeof data.data === 'string'
28
						?	dispatch(addNotification({style: 'danger',msg: data.data}))
29
						:	Object.entries(data.data)
30
							.map(([key, value]) =>
31
								value.map(err => dispatch(addNotification({style: 'danger',msg: `${key}: ${err}`})))
32
							)
33
					return
34
				}
35
 
36
				onComplete()
37
				onClose()
38
			})
39
			.catch((err) => dispatch(addNotification({style: 'danger',msg: err})))
40
	}
41
 
42
	return (
43
		<Modal show={show} onHide={onClose}>
44
			<Modal.Header closeButton>
45
				<Modal.Title>{title} - {isEdit ? 'Editar' : 'Agregar'}</Modal.Title>
46
			</Modal.Header>
47
 
48
			<Modal.Body>
49
				{children}
50
			</Modal.Body>
51
 
52
			<Modal.Footer>
53
				<Button variant="primary" onClick={onSubmit}>
54
                        Enviar
55
				</Button>
56
				<Button variant="danger" onClick={onClose}>
57
                        Cancelar
58
				</Button>
59
			</Modal.Footer>
60
		</Modal >
61
	)
62
}
63
 
64
export default EditModal