Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8063 | Rev 11254 | 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()
21
		Object.entries(submitData).forEach((entries) => {
22
			formData.append(entries[0], entries[1])
23
		})
7118 stevensc 24
 
11142 stevensc 25
		axios.post(postLink, formData)
26
			.then(({ data }) => {
27
				if (!data.success) {
28
					dispatch(addNotification({
29
						style: 'error',
30
						msg: typeof data.data === 'string'
31
							? data.data
32
							: Object.values(data.data)[0]
33
					}))
34
					return
35
				}
7116 stevensc 36
 
7777 stevensc 37
 
11142 stevensc 38
				dispatch(addNotification({
39
					style: 'success',
40
					msg: 'Envio completado'
41
				}))
42
				setError(null)
43
				closeModal()
44
			})
45
			.catch((err) => setError(err))
46
	}
7107 stevensc 47
 
11142 stevensc 48
	return (
49
		<Modal size="lg" show onHide={closeModal}>
50
			<Modal.Header closeButton>
51
				<Modal.Title>{title}</Modal.Title>
52
			</Modal.Header>
53
			<Modal.Body>
54
				<div className='form-group'>
55
					{children}
56
				</div>
57
				{error && <p>{error}</p>}
58
			</Modal.Body>
59
			<Modal.Footer>
60
				<Button
61
					variant="primary"
62
					onClick={onSubmit}
63
				>
7113 stevensc 64
                    Enviar
11142 stevensc 65
				</Button>
66
				<Button variant="danger" onClick={closeModal}>
7113 stevensc 67
                    Cancelar
11142 stevensc 68
				</Button>
69
			</Modal.Footer>
70
		</Modal >
71
	)
7107 stevensc 72
}
73
 
74
export default SubmitModal