Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
4814 stevensc 1
import axios from 'axios'
5423 stevensc 2
import React, { useState } from 'react'
11272 stevensc 3
import DeleteModal from '../../../shared/DeleteModal'
15513 stevensc 4
import Table from '../../../shared/table/Table'
5
import TableFilters from '../../../shared/table/TableFilters'
11272 stevensc 6
import EditModal from './EditModal'
4799 stevensc 7
 
5423 stevensc 8
const CompanySizesView = ({ urlsVar }) => {
11272 stevensc 9
	const { linkTable, addUrl, allowAdd, allowEdit, allowDelete } = urlsVar
10
	const [companyData, setCompanyData] = 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: 'minimum_no_of_employee', label: 'Mínimo', isSorteable: true },
18
		{ key: 'maximum_no_of_employee', label: 'Máximo', isSorteable: true },
19
		{ key: 'status', label: 'Activo', isSorteable: false },
20
		{ key: 'actions', label: 'Acciones', isSorteable: false }
21
	]
5071 stevensc 22
 
15513 stevensc 23
	const getData = (params) => {
24
		axios
15515 stevensc 25
			.get(linkTable,{params: params})
15513 stevensc 26
			.then(({ data:response }) => {
27
				if (response.success) {
28
					setCompanyData(response.data)
11272 stevensc 29
				}
30
			})
31
			.catch((err) => console.log(err))
32
	}
4814 stevensc 33
 
11272 stevensc 34
	const closeModal = () => {
35
		setShowModal(false)
36
	}
5071 stevensc 37
 
11272 stevensc 38
	const closeDeleteModal = () => {
39
		setShowDeleteModal(false)
40
		setActionLink(addUrl)
41
	}
5453 stevensc 42
 
11272 stevensc 43
	const editItem = (item) => {
44
		setSelectItem(item)
45
		setActionLink(item.actions.link_edit)
46
		setShowModal(true)
47
	}
5078 stevensc 48
 
11272 stevensc 49
	const deleteItem = (item) => {
50
		setActionLink(item.actions.link_delete)
51
		setShowDeleteModal(true)
52
	}
5453 stevensc 53
 
11272 stevensc 54
	const addItem = () => {
55
		setActionLink(addUrl)
56
		setShowModal(true)
57
	}
5078 stevensc 58
 
11272 stevensc 59
	return (
60
		<>
61
			<section className="content">
62
				<section className="content-header">
15513 stevensc 63
					<h1>Tamaños de empresa</h1>
11272 stevensc 64
				</section>
15513 stevensc 65
				<section className="container-fluid">
15514 stevensc 66
					<TableFilters data={companyData} onAdd={addItem} getData={()=> getData()} allowAdd={allowAdd}>
15513 stevensc 67
						{companyData.items &&
68
						function(){
69
							return (
70
								<Table
71
									headers={headers}
72
									data={companyData.items}
73
									allowDelete={allowDelete}
74
									allowEdit={allowEdit}
75
									onDelete={deleteItem}
76
									onEdit={editItem}
77
								/>
78
							)
79
						}()}
80
					</TableFilters>
81
				</section>
11272 stevensc 82
			</section>
83
			<EditModal
84
				isOpen={showModal}
85
				title='Tamaños de empresas'
15516 stevensc 86
				onClose={()=> {
87
					if(selectItem) setSelectItem(null)
88
					closeModal()
89
				}}
11272 stevensc 90
				url={actionLink}
91
				currentItem={selectItem}
15516 stevensc 92
				onComplete={()=> getData()}
11272 stevensc 93
			/>
94
			<DeleteModal
95
				isOpen={showDeleteModal}
96
				closeModal={closeDeleteModal}
97
				url={actionLink}
98
				onComplete={getData}
99
			/>
100
		</>
101
	)
4799 stevensc 102
}
103
 
104
export default CompanySizesView