Rev 1622 | Rev 2780 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'
import { debounce, jsonToParams } from '../../utils'
import { Container } from '@mui/material'
import { useSelector } from 'react-redux'
import Spinner from '../../components/UI/Spinner'
import SearchBar from '../../components/UI/SearchBar'
import ProfileItem from '../../components/profile/ProfileItem'
import EmptySection from '../../components/UI/EmptySection'
import TitleSection from '../../components/UI/TitleSection'
import LoaderContainer from '../../components/UI/LoaderContainer'
import PaginationComponent from '../../components/UI/PaginationComponent'
import useSearchParams from '@app/hooks/useSearchParams'
import useFetch from '@app/hooks/useFetch'
const ImpersonatePage = () => {
const { setParams, params } = useSearchParams()
const { data, isLoading } = useFetch(
`/impersonate?${jsonToParams(params)}`,
{}
)
const labels = useSelector(({ intl }) => intl.labels)
const handleSearch = debounce((value) => setParams('keyword', value), 500)
return (
<Container>
<TitleSection title='Usuarios disponibles a personalizar' />
<SearchBar onChange={handleSearch} />
{isLoading ? (
<LoaderContainer>
<Spinner />
</LoaderContainer>
) : (
<ul className='companies-list mt-3'>
{data.current?.items?.length > 0 ? (
data.current?.items?.map(
({ image, name, email, network, link_impersonate }, id) => (
<ProfileItem
isTopData
key={id}
image={image}
name={name}
email={email}
network={network}
link_impersonate={link_impersonate}
/>
)
)
) : (
<EmptySection
align='left'
message={labels.datatable_szerorecords}
/>
)}
</ul>
)}
<PaginationComponent
pages={data.total?.pages}
currentActivePage={data.current?.page}
onChangePage={(newPage) => setParams('page', newPage)}
isRow
/>
</Container>
)
}
export default ImpersonatePage