Proyectos de Subversion LeadersLinked - SPA

Rev

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

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