Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2798 stevensc 1
import React, { useState } from 'react'
2
import { useSelector } from 'react-redux'
5 stevensc 3
 
2798 stevensc 4
import { useFetch } from '@hooks'
5
import { debounce } from '@app/utils'
5 stevensc 6
 
2798 stevensc 7
import EmptySection from '@components/UI/EmptySection'
8
import SearchBar from '@components/UI/SearchBar'
9
import Spinner from '@components/UI/Spinner'
10
import TitleSection from '@components/UI/TitleSection'
11
import AddCompanyModal from '@components/modals/AddCompanyModal'
12
import ProfileItem from '@components/profile/ProfileItem'
13
 
5 stevensc 14
const MyCompanies = () => {
15
  const [search, setSearch] = useState('')
2798 stevensc 16
  const [showCompanyModal, setShowCompanyModal] = useState(false)
5 stevensc 17
  const labels = useSelector(({ intl }) => intl.labels)
18
 
2798 stevensc 19
  const {
20
    data: companies,
21
    isLoading,
22
    refetch
23
  } = useFetch(`/company/my-companies?search=${search}`)
5 stevensc 24
 
2798 stevensc 25
  const toggleShowCompanyModal = () => setShowCompanyModal(!showCompanyModal)
5 stevensc 26
 
27
  const handleSearch = debounce((value) => setSearch(value), 500)
28
 
29
  return (
2798 stevensc 30
    <>
2806 stevensc 31
      <TitleSection
32
        title={labels.my_companies}
33
        onAdd={toggleShowCompanyModal}
34
        addLabel={`${labels.add} ${labels.company?.toLowerCase()}`}
35
      />
2072 stevensc 36
 
2806 stevensc 37
      <SearchBar onChange={handleSearch} />
2072 stevensc 38
 
2806 stevensc 39
      <ul className='companies-list'>
40
        {isLoading ? <Spinner /> : null}
41
        {companies.length ? (
42
          companies.map(({ id, link_my_company, ...rest }) => (
43
            <ProfileItem
44
              key={id}
45
              link_admin={link_my_company}
46
              btnAcceptTitle={labels.view_company}
47
              {...rest}
5 stevensc 48
            />
2806 stevensc 49
          ))
50
        ) : (
51
          <EmptySection align='left' message={labels.datatable_szerorecords} />
52
        )}
53
      </ul>
54
 
5 stevensc 55
      <AddCompanyModal
2798 stevensc 56
        show={showCompanyModal}
5 stevensc 57
        onHide={toggleShowCompanyModal}
2798 stevensc 58
        fetchCompanies={refetch}
5 stevensc 59
      />
2798 stevensc 60
    </>
5 stevensc 61
  )
62
}
63
 
64
export default MyCompanies