Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2806 | Rev 2873 | 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'
5 stevensc 2
import { useSelector } from 'react-redux'
2864 stevensc 3
import { Search } from '@mui/icons-material'
5 stevensc 4
 
2806 stevensc 5
import { debounce, jsonToParams } from '../../utils'
2780 stevensc 6
import { useFetch, useSearchParams } from '@hooks'
7
 
5 stevensc 8
import Spinner from '../../components/UI/Spinner'
2864 stevensc 9
import Input from '../../components/UI/inputs/Input'
5 stevensc 10
import ProfileItem from '../../components/profile/ProfileItem'
11
import EmptySection from '../../components/UI/EmptySection'
12
import TitleSection from '../../components/UI/TitleSection'
13
import PaginationComponent from '../../components/UI/PaginationComponent'
14
 
15
const ImpersonatePage = () => {
1619 stevensc 16
  const { setParams, params } = useSearchParams()
1622 stevensc 17
  const { data, isLoading } = useFetch(
1623 stevensc 18
    `/impersonate?${jsonToParams(params)}`,
1622 stevensc 19
    {}
20
  )
5 stevensc 21
  const labels = useSelector(({ intl }) => intl.labels)
22
 
1619 stevensc 23
  const handleSearch = debounce((value) => setParams('keyword', value), 500)
5 stevensc 24
 
1619 stevensc 25
  return (
2806 stevensc 26
    <>
1619 stevensc 27
      <TitleSection title='Usuarios disponibles a personalizar' />
5 stevensc 28
 
2864 stevensc 29
      <Input icon={<Search />} onChange={handleSearch} />
5 stevensc 30
 
1619 stevensc 31
      {isLoading ? (
2864 stevensc 32
        <Spinner />
1619 stevensc 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
      />
2806 stevensc 63
    </>
5 stevensc 64
  )
65
}
66
 
67
export default ImpersonatePage