Proyectos de Subversion LeadersLinked - Backend

Rev

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