Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
1619 stevensc 1
import React from 'react'
2
import { debounce } from '../../utils'
5 stevensc 3
import { Container } from '@mui/material'
4
import { useSelector } from 'react-redux'
5
 
6
import Spinner from '../../components/UI/Spinner'
7
import SearchBar from '../../components/UI/SearchBar'
8
import ProfileItem from '../../components/profile/ProfileItem'
9
import EmptySection from '../../components/UI/EmptySection'
10
import TitleSection from '../../components/UI/TitleSection'
11
import LoaderContainer from '../../components/UI/LoaderContainer'
12
import PaginationComponent from '../../components/UI/PaginationComponent'
1619 stevensc 13
import useSearchParams from '@app/hooks/useSearchParams'
14
import useFetch from '@app/hooks/useFetch'
5 stevensc 15
 
16
const ImpersonatePage = () => {
1619 stevensc 17
  const { setParams, params } = useSearchParams()
18
  const { data, isLoading } = useFetch(`/impersonate`, {}, params)
5 stevensc 19
  const labels = useSelector(({ intl }) => intl.labels)
20
 
1619 stevensc 21
  const handleSearch = debounce((value) => setParams('keyword', value), 500)
5 stevensc 22
 
1619 stevensc 23
  return (
24
    <Container>
25
      <TitleSection title='Usuarios disponibles a personalizar' />
5 stevensc 26
 
1619 stevensc 27
      <SearchBar onChange={handleSearch} />
5 stevensc 28
 
1619 stevensc 29
      {isLoading ? (
30
        <LoaderContainer>
31
          <Spinner />
32
        </LoaderContainer>
33
      ) : (
34
        <ul className='companies-list mt-3'>
1620 stevensc 35
          {data.current?.items?.length > 0 ? (
36
            data.current?.items?.map(
1619 stevensc 37
              ({ image, name, email, network, link_impersonate }, id) => (
38
                <ProfileItem
39
                  isTopData
40
                  key={id}
41
                  image={image}
42
                  name={name}
43
                  email={email}
44
                  network={network}
45
                  link_impersonate={link_impersonate}
46
                />
5 stevensc 47
              )
1619 stevensc 48
            )
49
          ) : (
50
            <EmptySection
51
              align='left'
52
              message={labels.datatable_szerorecords}
53
            />
54
          )}
55
        </ul>
56
      )}
57
      <PaginationComponent
1620 stevensc 58
        pages={data.total?.pages}
59
        currentActivePage={data.current?.page}
1619 stevensc 60
        onChangePage={(newPage) => setParams('page', newPage)}
61
        isRow
62
      />
63
    </Container>
5 stevensc 64
  )
65
}
66
 
67
export default ImpersonatePage