Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11254 | Rev 14168 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
11142 stevensc 1
import React, { useState } from 'react'
2
import { Modal, Button } from 'react-bootstrap'
3
import axios from 'axios'
4
import { addNotification } from '../../../redux/notification/notification.actions'
5
import { useDispatch } from 'react-redux'
7107 stevensc 6
 
7
const SubmitModal = ({
11142 stevensc 8
	children,
9
	closeModal = function () { },
10
	postLink = '',
11
	submitData = '',
12
	title = ''
7107 stevensc 13
}) => {
14
 
11142 stevensc 15
	const [error, setError] = useState('')
16
	const dispatch = useDispatch()
7107 stevensc 17
 
11142 stevensc 18
	const onSubmit = () => {
7107 stevensc 19
 
11142 stevensc 20
		const formData = new FormData()
7118 stevensc 21
 
11254 stevensc 22
		if (Array.isArray(submitData)) {
23
			submitData.forEach(data => {
24
				Object.entries(data).forEach((entries) => {
25
					formData.append(entries[0], entries[1])
26
				})
27
			})
28
		} else {
29
			Object.entries(submitData).forEach((entries) => {
30
				formData.append(entries[0], entries[1])
31
			})
32
		}
33
 
11142 stevensc 34
		axios.post(postLink, formData)
35
			.then(({ data }) => {
36
				if (!data.success) {
14167 stevensc 37
					return dispatch(addNotification({
38
						style: 'danger',
11142 stevensc 39
						msg: typeof data.data === 'string'
40
							? data.data
41
							: Object.values(data.data)[0]
42
					}))
43
				}
7116 stevensc 44
 
7777 stevensc 45
 
11142 stevensc 46
				dispatch(addNotification({
47
					style: 'success',
48
					msg: 'Envio completado'
49
				}))
50
				setError(null)
51
				closeModal()
52
			})
53
			.catch((err) => setError(err))
54
	}
7107 stevensc 55
 
11142 stevensc 56
	return (
57
		<Modal size="lg" show onHide={closeModal}>
58
			<Modal.Header closeButton>
59
				<Modal.Title>{title}</Modal.Title>
60
			</Modal.Header>
61
			<Modal.Body>
62
				<div className='form-group'>
63
					{children}
64
				</div>
65
				{error && <p>{error}</p>}
66
			</Modal.Body>
67
			<Modal.Footer>
68
				<Button
69
					variant="primary"
70
					onClick={onSubmit}
71
				>
11254 stevensc 72
					Enviar
11142 stevensc 73
				</Button>
74
				<Button variant="danger" onClick={closeModal}>
11254 stevensc 75
					Cancelar
11142 stevensc 76
				</Button>
77
			</Modal.Footer>
78
		</Modal >
79
	)
7107 stevensc 80
}
81
 
82
export default SubmitModal