Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 6353 | Rev 15521 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React, { useState } from 'react'
import axios from 'axios';
import EditModal from '../../groups-types/view/EditModal';
import TableContainer from '../../company-sizes/view/TableContainer'
import DeleteModal from '../../../shared/DeleteModal';

const DegreesView = ({ urlsVar }) => {

  const { linkTable, addUrl, allowAdd, allowEdit, allowDelete } = urlsVar
  const [companyData, setCompanyData] = useState({});
  const [showModal, setShowModal] = useState(false);
  const [showDeleteModal, setShowDeleteModal] = useState(false);
  const [selectItem, setSelectItem] = useState(null);
  const [actionLink, setActionLink] = useState(addUrl);
  const headers = [
    { key: "name", label: "Nombre", isSorteable: true },
    { key: "status", label: "Activo", isSorteable: false },
    { key: "actions", label: "Acciones", isSorteable: false }
  ]

  const getData = (search, start, length) => {
    axios.get(
      linkTable,
      {
        params: {
          search: search,
          start: start,
          length: length
        }
      })
      .then(({ data }) => {
        if (data.success) {
          setCompanyData(data.data)

          return data.data
        }
      })
      .catch((err) => console.log(err))
  }

  const closeModal = () => {
    setShowModal(false)
    setSelectItem(null)
    setActionLink(addUrl)
  }

  const closeDeleteModal = () => {
    setShowDeleteModal(false)
    setActionLink(addUrl)
  }

  const editItem = (item) => {
    setSelectItem(item);
    setActionLink(item.actions.link_edit);
    setShowModal(true);
  }

  const deleteItem = (item) => {
    setActionLink(item.actions.link_delete);
    setShowDeleteModal(true);
  }

  const addItem = () => {
    setSelectItem(null);
    setActionLink(addUrl)
    setShowModal(true);
  }

  return (
    <>
      <section className="content">
        <section className="content-header">
          <div className="container-fluid">
            <div className="row mb-2">
              <div className="col-sm-12">
                <h1>Grados</h1>
              </div>
            </div>
          </div>
        </section>
        <TableContainer
          data={companyData}
          getData={getData}
          onEdit={editItem}
          onDelete={deleteItem}
          onAdd={addItem}
          headers={headers}
          allowAdd={allowAdd}
          allowEdit={allowEdit}
          allowDelete={allowDelete}
        />
      </section>
      <EditModal
        isOpen={showModal}
        title='Grados'
        closeModal={closeModal}
        isEdit={actionLink !== addUrl}
        url={actionLink}
        currentItem={selectItem}
        action={getData}
      />
      <DeleteModal
        isOpen={showDeleteModal}
        closeModal={closeDeleteModal}
        url={actionLink}
        action={getData}
      />
    </>
  )
}

export default DegreesView