Proyectos de Subversion LeadersLinked - Backend

Rev

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

Rev Autor Línea Nro. Línea
4814 stevensc 1
import axios from 'axios'
5423 stevensc 2
import React, { useState } from 'react'
5072 stevensc 3
import EditModal from './Modal';
5423 stevensc 4
import TableContainer from './TableContainer';
4799 stevensc 5
 
5100 stevensc 6
const defaultActionLink = '/settings/company-sizes/add'
7
 
5423 stevensc 8
const CompanySizesView = ({ urlsVar }) => {
4814 stevensc 9
 
5100 stevensc 10
    const { linkTable } = urlsVar
4905 stevensc 11
    const [companyData, setCompanyData] = useState({});
5071 stevensc 12
    const [showModal, setShowModal] = useState(false);
5078 stevensc 13
    const [selectItem, setSelectItem] = useState(null);
5100 stevensc 14
    const [actionLink, setActionLink] = useState(defaultActionLink);
5423 stevensc 15
    const headers = [
16
        { key: "name", label: "Nombre", isSorteable: true },
17
        { key: "minimum_no_of_employee", label: "Mínimo", isSorteable: true },
18
        { key: "maximum_no_of_employee", label: "Máximo", isSorteable: true },
19
        { key: "status", label: "Activo", isSorteable: false },
20
        { key: "actions", label: "Acciones", isSorteable: false }
21
    ]
5071 stevensc 22
 
5423 stevensc 23
    const getData = (search, start, length) => {
4881 stevensc 24
        axios.get(
25
            linkTable,
26
            {
27
                params: {
5225 stevensc 28
                    search: search,
5423 stevensc 29
                    start: start,
30
                    length: length
4881 stevensc 31
                }
32
            })
4841 stevensc 33
            .then(({ data }) => {
34
                if (data.success) {
35
                    setCompanyData(data.data)
4830 stevensc 36
 
4841 stevensc 37
                    return data.data
38
                }
39
            })
40
            .catch((err) => console.log(err))
4814 stevensc 41
    }
42
 
5071 stevensc 43
    const closeModal = () => {
44
        setShowModal(false)
5090 stevensc 45
        setSelectItem(null)
5100 stevensc 46
        setActionLink(defaultActionLink)
5071 stevensc 47
    }
48
 
5078 stevensc 49
    const editItem = (item) => {
50
        setSelectItem(item);
5100 stevensc 51
        setActionLink(item.actions.link_edit);
5078 stevensc 52
        setShowModal(true);
53
    }
54
 
55
    const addItem = () => {
56
        setSelectItem(null);
5100 stevensc 57
        setActionLink(defaultActionLink)
5078 stevensc 58
        setShowModal(true);
59
    }
60
 
4799 stevensc 61
    return (
5071 stevensc 62
        <>
63
            <section className="content">
64
                <section className="content-header">
65
                    <div className="container-fluid">
66
                        <div className="row mb-2">
67
                            <div className="col-sm-12">
5423 stevensc 68
                                <h1>Tamaños de empresa</h1>
5071 stevensc 69
                            </div>
4881 stevensc 70
                        </div>
71
                    </div>
5071 stevensc 72
                </section>
5423 stevensc 73
                <TableContainer
74
                    data={companyData}
75
                    getData={getData}
76
                    onEdit={editItem}
77
                    onAdd={addItem}
78
                    headers={headers}
79
                />
4881 stevensc 80
            </section>
5072 stevensc 81
            <EditModal
5071 stevensc 82
                isOpen={showModal}
83
                title='Tamaños de empresas'
84
                closeModal={closeModal}
5101 stevensc 85
                isEdit={actionLink !== defaultActionLink}
5078 stevensc 86
                url={actionLink}
87
                currentItem={selectItem}
5312 stevensc 88
                action={getData}
5071 stevensc 89
            />
90
        </>
4799 stevensc 91
    )
92
}
93
 
94
export default CompanySizesView