Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15519 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15507 stevensc 1
import React, { useState } from 'react'
2
import axios from 'axios'
3
import EditModal from '../../groups-types/view/EditModal'
4
import DeleteModal from '../../../shared/DeleteModal'
5
import TableFilters from '../../../shared/table/TableFilters'
6
import Table from '../../../shared/table/Table'
7
 
8
const AptitudesView = ({ urlsVar }) => {
9
	const { linkTable, addUrl, allowAdd, allowEdit, allowDelete } = urlsVar
10
	const [aptitudes, setAptitudes] = useState({})
11
	const [showModal, setShowModal] = useState(false)
12
	const [showDeleteModal, setShowDeleteModal] = useState(false)
13
	const [selectItem, setSelectItem] = useState(null)
14
	const [actionLink, setActionLink] = useState(addUrl)
15
	const headers = [
16
		{ key: 'name', label: 'Nombre', isSorteable: true },
17
		{ key: 'status', label: 'Activo', isSorteable: false },
18
		{ key: 'actions', label: 'Acciones', isSorteable: false }
19
	]
20
 
21
	const getData = (params) => {
22
		axios.get(linkTable,{params: params})
23
			.then(({ data: response }) => {
24
				if (response.success) {
25
					setAptitudes(response.data)
26
				}
27
			})
28
			.catch((err) => console.log(err))
29
	}
30
 
31
	const closeModal = () => {
32
		setShowModal(false)
33
		setSelectItem(null)
34
		setActionLink(addUrl)
35
	}
36
 
37
	const closeDeleteModal = () => {
38
		setShowDeleteModal(false)
39
		setActionLink(addUrl)
40
	}
41
 
42
	const editItem = (item) => {
43
		setSelectItem(item)
44
		setActionLink(item.actions.link_edit)
45
		setShowModal(true)
46
	}
47
 
48
	const deleteItem = (item) => {
49
		setActionLink(item.actions.link_delete)
50
		setShowDeleteModal(true)
51
	}
52
 
53
	const addItem = () => {
54
		setSelectItem(null)
55
		setActionLink(addUrl)
56
		setShowModal(true)
57
	}
58
 
59
	return (
60
		<>
61
			<section className="content">
62
				<section className="content-header">
63
					<h1>Aptitudes</h1>
64
					<div className="container-fluid">
65
						<TableFilters
66
							data={aptitudes}
67
							getData={getData}
68
							onAdd={addItem}
69
							allowAdd={allowAdd}
70
						>
71
							{aptitudes.items &&
72
							function(){
73
								return (
74
									<Table
75
										data={aptitudes.items}
76
										onEdit={editItem}
77
										onDelete={deleteItem}
78
										headers={headers}
79
										allowEdit={allowEdit}
80
										allowDelete={allowDelete}
81
									/>
82
								)
83
							}()}
84
						</TableFilters>
85
 
86
					</div>
87
				</section>
88
			</section>
89
			<EditModal
90
				isOpen={showModal}
91
				title='Aptitudes'
92
				closeModal={closeModal}
93
				isEdit={actionLink !== addUrl}
94
				url={actionLink}
95
				currentItem={selectItem}
96
				action={getData}
97
			/>
98
			<DeleteModal
99
				isOpen={showDeleteModal}
100
				closeModal={closeDeleteModal}
101
				url={actionLink}
102
				onComplete={getData}
103
			/>
104
		</>
105
	)
106
}
107
 
108
export default AptitudesView