Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15519 | | Comparar con el anterior | 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
 
15519 stevensc 8
const AptitudesView = ({ linkTable, addUrl, allowAdd, allowEdit, allowDelete }) => {
15507 stevensc 9
	const [aptitudes, setAptitudes] = useState({})
15519 stevensc 10
	const [selectItem, setSelectItem] = useState(null)
11
	const [actionLink, setActionLink] = useState(addUrl)
15507 stevensc 12
	const [showModal, setShowModal] = useState(false)
13
	const [showDeleteModal, setShowDeleteModal] = useState(false)
15524 stevensc 14
 
15507 stevensc 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) => {
15524 stevensc 22
		axios.get(linkTable, { params: params })
15507 stevensc 23
			.then(({ data: response }) => {
15519 stevensc 24
				if (response.success) setAptitudes(response.data)
15507 stevensc 25
			})
26
			.catch((err) => console.log(err))
27
	}
28
 
29
	const closeDeleteModal = () => {
30
		setShowDeleteModal(false)
31
	}
32
 
33
	const editItem = (item) => {
34
		setSelectItem(item)
35
		setActionLink(item.actions.link_edit)
36
		setShowModal(true)
37
	}
38
 
39
	const deleteItem = (item) => {
40
		setActionLink(item.actions.link_delete)
41
		setShowDeleteModal(true)
42
	}
43
 
44
	const addItem = () => {
45
		setActionLink(addUrl)
46
		setShowModal(true)
47
	}
48
 
49
	return (
50
		<>
51
			<section className="content">
52
				<section className="content-header">
53
					<h1>Aptitudes</h1>
15519 stevensc 54
				</section>
55
				<section className="container-fluid">
56
					<TableFilters data={aptitudes} getData={getData} onAdd={addItem} allowAdd={allowAdd}>
57
						{aptitudes.items &&
15524 stevensc 58
							function () {
15507 stevensc 59
								return (
60
									<Table
61
										data={aptitudes.items}
62
										onEdit={editItem}
63
										onDelete={deleteItem}
64
										headers={headers}
65
										allowEdit={allowEdit}
66
										allowDelete={allowDelete}
67
									/>
68
								)
69
							}()}
15519 stevensc 70
					</TableFilters>
15507 stevensc 71
				</section>
72
			</section>
73
			<EditModal
15519 stevensc 74
				title='Aptitudes'
15507 stevensc 75
				isOpen={showModal}
76
				url={actionLink}
77
				currentItem={selectItem}
15524 stevensc 78
				onComplete={() => getData()}
79
				onClose={() => {
80
					if (selectItem) setSelectItem(null)
15519 stevensc 81
					closeModal()
82
				}}
15507 stevensc 83
			/>
84
			<DeleteModal
85
				isOpen={showDeleteModal}
86
				closeModal={closeDeleteModal}
87
				url={actionLink}
88
				onComplete={getData}
89
			/>
90
		</>
91
	)
92
}
93
 
94
export default AptitudesView