Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11152 | Rev 15062 | Ir a la última revisión | | 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'
3
import { Modal, Button } from 'react-bootstrap'
4
import { getData } from '../../../helpers/fetchHelpers'
5
import Datetime from 'react-datetime'
11152 stevensc 6
import 'react-datetime/css/react-datetime.css'
14843 stevensc 7
import { addNotification } from '../../../redux/notification/notification.actions'
8
import { useDispatch } from 'react-redux'
6407 stevensc 9
 
10
const FoundationsYearModal = ({
11152 stevensc 11
	isOpen,
12
	closeModal,
13
	foundationYearUrl,
14
	action
6407 stevensc 15
}) => {
16
 
11152 stevensc 17
	const [year, setYear] = useState(0)
18
	const [error, setError] = useState(null)
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
			})
48
			.then(() => {
49
				setError(null)
50
				closeModal()
51
			})
52
			.catch((err) => console.log(err))
53
	}
6407 stevensc 54
 
11152 stevensc 55
	useEffect(() => {
56
		getData(foundationYearUrl)
57
			.then(({ foundation_year }) => setYear(parseInt(foundation_year)))
58
			.catch(err => console.log(err))
59
	}, [isOpen])
6407 stevensc 60
 
11152 stevensc 61
	return (
62
		<Modal
63
			size="md"
64
			show={isOpen}
65
			onHide={closeModal}
66
			autoFocus={false}
67
		>
68
			<Modal.Header closeButton>
69
				<Modal.Title>Cambiar</Modal.Title>
70
			</Modal.Header>
71
			<form onSubmit={(e) => onSubmit(e)}>
72
				<Modal.Body>
73
					<div className="mb-3">
74
						<label className="form-label">Año de fundación</label>
75
						<Datetime
76
							dateFormat="YYYY"
77
							timeFormat={false}
78
							onChange={(e) => setYear(e.year())}
79
							initialValue={new Date(`${year + 1}`).getFullYear().toString()}
80
							inputProps={{ className: 'form-control' }}
81
							closeOnSelect
82
						/>
83
					</div>
84
					{error && <p>{error}</p>}
85
				</Modal.Body>
86
				<Modal.Footer>
87
					<Button
88
						variant="primary"
89
						type="submit"
90
					>
14843 stevensc 91
						Enviar
11152 stevensc 92
					</Button>
93
					<Button
94
						className='btn-tertiary'
95
						onClick={closeModal}
96
					>
14843 stevensc 97
						Cancelar
11152 stevensc 98
					</Button>
99
				</Modal.Footer>
100
			</form>
101
		</Modal >
102
	)
6407 stevensc 103
}
104
 
105
export default FoundationsYearModal