Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15521 | 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 DeleteModal from '../../../shared/DeleteModal'
import TableFilters from '../../../shared/table/TableFilters'
import Table from '../../../shared/table/Table'

const DegreesView = ({ linkTable, addUrl, allowAdd, allowEdit, allowDelete }) => {
        const [degrees, setDegrees] = useState({})
        const [selectItem, setSelectItem] = useState(null)
        const [actionLink, setActionLink] = useState(addUrl)
        const [showModal, setShowModal] = useState(false)
        const [showDeleteModal, setShowDeleteModal] = useState(false)

        const headers = [
                { key: 'name', label: 'Nombre', isSorteable: true },
                { key: 'status', label: 'Activo', isSorteable: false },
                { key: 'actions', label: 'Acciones', isSorteable: false }
        ]

        const getData = (params) => {
                axios
                        .get(linkTable, { params: params })
                        .then(({ data }) => {
                                if (data.success) setDegrees(data.data)
                        })
                        .catch((err) => console.log(err))
        }

        const closeModal = () => {
                setShowModal(false)
        }

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

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

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

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

        return (
                <>
                        <section className="content">
                                <section className="content-header">
                                        <h1>Grados</h1>
                                </section>
                                <section className="container-fluid">
                                        <TableFilters data={degrees} getData={getData} onAdd={addItem} allowAdd={allowAdd}>
                                                {degrees.items &&
                                                        function () {
                                                                return (
                                                                        <Table
                                                                                data={degrees.items}
                                                                                onEdit={editItem}
                                                                                onDelete={deleteItem}
                                                                                headers={headers}
                                                                                allowEdit={allowEdit}
                                                                                allowDelete={allowDelete}
                                                                        />
                                                                )
                                                        }()}
                                        </TableFilters>
                                </section>
                        </section>
                        <EditModal
                                title='Grados'
                                isOpen={showModal}
                                url={actionLink}
                                currentItem={selectItem}
                                onComplete={() => getData()}
                                onClose={() => {
                                        if (selectItem) setSelectItem(null)
                                        closeModal()
                                }}
                        />
                        <DeleteModal
                                isOpen={showDeleteModal}
                                url={actionLink}
                                closeModal={closeDeleteModal}
                                onComplete={getData}
                        />
                </>
        )
}

export default DegreesView