Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
5711 stevensc 1
import React, { useState } from 'react'
2
import axios from 'axios';
3
import EditModal from '../../competency-types/view/EditModal';
4
import TableContainer from '../../company-sizes/view/TableContainer'
7427 stevensc 5
import DeleteModal from '../../../shared/DeleteModal';
5711 stevensc 6
 
7
const JobCategoriesView = ({ urlsVar }) => {
8
 
5713 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: "status", label: "Activo", isSorteable: false },
18
    { key: "actions", label: "Acciones", isSorteable: false }
19
  ]
5711 stevensc 20
 
5713 stevensc 21
  const getData = (search, start, length) => {
22
    axios.get(
23
      linkTable,
24
      {
25
        params: {
26
          search: search,
27
          start: start,
28
          length: length
29
        }
30
      })
31
      .then(({ data }) => {
32
        if (data.success) {
33
          setCompanyData(data.data)
5711 stevensc 34
 
5713 stevensc 35
          return data.data
36
        }
37
      })
38
      .catch((err) => console.log(err))
39
  }
5711 stevensc 40
 
5713 stevensc 41
  const closeModal = () => {
42
    setShowModal(false)
43
    setSelectItem(null)
44
    setActionLink(addUrl)
45
  }
5711 stevensc 46
 
5713 stevensc 47
  const closeDeleteModal = () => {
48
    setShowDeleteModal(false)
49
    setActionLink(addUrl)
50
  }
5711 stevensc 51
 
5713 stevensc 52
  const editItem = (item) => {
53
    setSelectItem(item);
54
    setActionLink(item.actions.link_edit);
55
    setShowModal(true);
56
  }
5711 stevensc 57
 
5713 stevensc 58
  const deleteItem = (item) => {
59
    setActionLink(item.actions.link_delete);
60
    setShowDeleteModal(true);
61
  }
5711 stevensc 62
 
5713 stevensc 63
  const addItem = () => {
64
    setSelectItem(null);
65
    setActionLink(addUrl)
66
    setShowModal(true);
67
  }
5711 stevensc 68
 
5713 stevensc 69
  return (
70
    <>
71
      <section className="content">
72
        <section className="content-header">
73
          <div className="container-fluid">
74
            <div className="row mb-2">
75
              <div className="col-sm-12">
76
                <h1>Categorías de Empleo</h1>
77
              </div>
78
            </div>
79
          </div>
80
        </section>
81
        <TableContainer
82
          data={companyData}
83
          getData={getData}
84
          onEdit={editItem}
85
          onDelete={deleteItem}
86
          onAdd={addItem}
87
          headers={headers}
88
          allowAdd={allowAdd}
89
          allowEdit={allowEdit}
90
          allowDelete={allowDelete}
91
 
92
        />
93
      </section>
94
      <EditModal
95
        isOpen={showModal}
96
        title='Categorías de Empleo'
97
        closeModal={closeModal}
98
        isEdit={actionLink !== addUrl}
99
        url={actionLink}
100
        currentItem={selectItem}
101
        action={getData}
102
      />
103
      <DeleteModal
104
        isOpen={showDeleteModal}
105
        closeModal={closeDeleteModal}
106
        url={actionLink}
107
        action={getData}
108
      />
109
    </>
110
  )
5711 stevensc 111
}
112
 
113
export default JobCategoriesView