Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15499 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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