Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15271 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6407 stevensc 1
import axios from 'axios'
2
import React, { useEffect, useState } from 'react'
15279 stevensc 3
import { Modal } from 'react-bootstrap'
6407 stevensc 4
import { getData } from '../../../helpers/fetchHelpers'
15228 stevensc 5
import { addNotification } from '../../../redux/notification/notification.actions'
6
import { useDispatch } from 'react-redux'
6407 stevensc 7
import Datetime from 'react-datetime'
11152 stevensc 8
import 'react-datetime/css/react-datetime.css'
6407 stevensc 9
 
10
const FoundationsYearModal = ({
11152 stevensc 11
	isOpen,
12
	closeModal,
13
	foundationYearUrl,
15062 stevensc 14
	action,
15
	title
6407 stevensc 16
}) => {
17
 
11152 stevensc 18
	const [year, setYear] = useState(0)
14843 stevensc 19
	const dispatch = useDispatch()
6407 stevensc 20
 
11152 stevensc 21
	const onSubmit = (e) => {
22
		e.preventDefault()
6407 stevensc 23
 
11152 stevensc 24
		const data = new FormData()
25
		data.append('foundation_year', year)
6407 stevensc 26
 
11152 stevensc 27
		axios.post(foundationYearUrl, data)
28
			.then(({ data }) => {
29
				if (!data.success) {
14843 stevensc 30
					typeof data.data === 'string'
31
						?
32
						dispatch(addNotification({
33
							style: 'danger',
34
							msg: data.data
35
						}))
36
						: Object.entries(data.data).map(([key, value]) =>
37
							value.map(err =>
38
								dispatch(addNotification({
39
									style: 'danger',
40
									msg: `${key}: ${err}`
41
								}))
42
							)
43
						)
44
					return
11152 stevensc 45
				}
46
				action(data.data)
47
				closeModal()
48
			})
49
			.catch((err) => console.log(err))
50
	}
6407 stevensc 51
 
11152 stevensc 52
	useEffect(() => {
53
		getData(foundationYearUrl)
54
			.then(({ foundation_year }) => setYear(parseInt(foundation_year)))
55
			.catch(err => console.log(err))
56
	}, [isOpen])
6407 stevensc 57
 
11152 stevensc 58
	return (
59
		<Modal
60
			size="md"
61
			show={isOpen}
62
			onHide={closeModal}
63
			autoFocus={false}
64
		>
65
			<Modal.Header closeButton>
15227 stevensc 66
				<Modal.Title>{title}</Modal.Title>
11152 stevensc 67
			</Modal.Header>
68
			<form onSubmit={(e) => onSubmit(e)}>
69
				<Modal.Body>
15271 stevensc 70
					<div className="form-group">
11152 stevensc 71
						<Datetime
72
							dateFormat="YYYY"
73
							timeFormat={false}
74
							onChange={(e) => setYear(e.year())}
75
							initialValue={new Date(`${year + 1}`).getFullYear().toString()}
76
							inputProps={{ className: 'form-control' }}
77
							closeOnSelect
78
						/>
79
					</div>
80
				</Modal.Body>
81
				<Modal.Footer>
15279 stevensc 82
					<button
83
						className="btn btn-primary"
11152 stevensc 84
						type="submit"
85
					>
14843 stevensc 86
						Enviar
15279 stevensc 87
					</button>
88
					<button
89
						className='btn btn-tertiary'
11152 stevensc 90
						onClick={closeModal}
91
					>
14843 stevensc 92
						Cancelar
15279 stevensc 93
					</button>
11152 stevensc 94
				</Modal.Footer>
95
			</form>
96
		</Modal >
97
	)
6407 stevensc 98
}
99
 
100
export default FoundationsYearModal