Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15052 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6788 stevensc 1
import React, { useState } from 'react'
11121 stevensc 2
import axios from 'axios'
3
import DeleteModal from '../../shared/DeleteModal'
4
import TableFilters from '../components/TableFilters'
11131 stevensc 5
import AddModal from '../components/Modals/AddModal'
14879 stevensc 6
import AppliedModal from '../components/Modals/AppliedModal'
6628 stevensc 7
 
15052 stevensc 8
const JobsTableView = ({ backendVars, labels }) => {
6680 stevensc 9
 
11139 stevensc 10
	const {
11
		allowAdd,
12
		allowDelete,
13
		allowEdit,
14
		allowUsersWhoApplied,
15
		link_add,
16
		link_table,
17
		onEdit,
18
		googleApi,
19
		jobCategoryOptions
20
	} = backendVars
15241 stevensc 21
 
11121 stevensc 22
	const [companyData, setCompanyData] = useState({})
23
	const [showModal, setShowModal] = useState(false)
24
	const [showDeleteModal, setShowDeleteModal] = useState(false)
25
	const [actionLink, setActionLink] = useState(link_add)
14879 stevensc 26
	const [appliedModal, setAppliedModal] = useState(false)
6791 stevensc 27
 
11121 stevensc 28
	const headers = [
29
		{ key: 'last_date_of_application', label: 'Último día de aplicación', isSorteable: true },
30
		{ key: 'title', label: 'Título', isSorteable: true },
31
		{ key: 'details', label: 'Detalles', isSorteable: true },
32
		{ key: 'actions', label: 'Acciones', isSorteable: false }
33
	]
6680 stevensc 34
 
14561 stevensc 35
	const getData = (search = '', start = 1, length = 10) => {
11121 stevensc 36
		axios.get(
37
			link_table,
38
			{
39
				params: {
40
					search: search,
41
					start: start,
42
					length: length
43
				}
44
			})
45
			.then(({ data }) => {
46
				if (data.success) {
47
					setCompanyData(data.data)
6680 stevensc 48
 
11121 stevensc 49
					return data.data
50
				}
51
			})
52
			.catch((err) => console.log(err))
53
	}
6680 stevensc 54
 
11121 stevensc 55
	const closeModal = () => {
56
		setShowModal(false)
57
		setActionLink(link_add)
58
	}
6680 stevensc 59
 
14879 stevensc 60
	const closeAppliedModal = () => {
14882 stevensc 61
		setAppliedModal(false)
14879 stevensc 62
		setActionLink(link_add)
63
	}
64
 
11121 stevensc 65
	const closeDeleteModal = () => {
66
		setShowDeleteModal(false)
67
		setActionLink(link_add)
68
	}
6680 stevensc 69
 
11121 stevensc 70
	const deleteItem = (item) => {
71
		setActionLink(item.actions.link_delete)
72
		setShowDeleteModal(true)
73
	}
6680 stevensc 74
 
11121 stevensc 75
	const addItem = () => {
76
		setActionLink(link_add)
77
		setShowModal(true)
78
	}
6680 stevensc 79
 
14879 stevensc 80
	const handleUserWhoApplied = (link) => {
81
		setActionLink(link)
82
		setAppliedModal(true)
83
	}
84
 
11121 stevensc 85
	return (
86
		<>
87
			<section className="content-header">
88
				<div className="container-fluid">
89
					<div className="row mb-2">
90
						<div className="col-sm-12">
15052 stevensc 91
							<h1>{labels.JOBS}</h1>
11121 stevensc 92
						</div>
93
					</div>
94
				</div>
95
			</section>
96
			<TableFilters
97
				data={companyData}
98
				getData={getData}
99
				onDelete={deleteItem}
100
				onAdd={addItem}
101
				onEdit={onEdit}
102
				headers={headers}
103
				allowAdd={allowAdd}
104
				allowEdit={allowEdit}
105
				allowDelete={allowDelete}
106
				allowUsersWhoApplied={allowUsersWhoApplied}
14879 stevensc 107
				handleUserWhoApplied={handleUserWhoApplied}
15052 stevensc 108
				labels={labels}
11121 stevensc 109
			/>
15241 stevensc 110
			{appliedModal &&
14882 stevensc 111
				<AppliedModal
14879 stevensc 112
					dataLink={actionLink}
113
					closeModal={closeAppliedModal}
114
				/>
115
			}
15241 stevensc 116
			{showModal &&
11139 stevensc 117
				<AddModal
118
					closeModal={closeModal}
119
					dataLink={actionLink}
14561 stevensc 120
					onComplete={getData}
11139 stevensc 121
					googleApiKey={googleApi}
122
					jobCategoryOptions={jobCategoryOptions}
11131 stevensc 123
 
11139 stevensc 124
				/>
11131 stevensc 125
			}
11121 stevensc 126
			<DeleteModal
127
				isOpen={showDeleteModal}
128
				closeModal={closeDeleteModal}
129
				url={actionLink}
11911 stevensc 130
				onComplete={getData}
11121 stevensc 131
			/>
132
		</>
133
	)
6628 stevensc 134
}
135
 
136
export default JobsTableView