Proyectos de Subversion LeadersLinked - Backend

Rev

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