Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3416 stevensc 1
import React from "react";
2
import { useSelector } from "react-redux";
3
import { Search } from "@mui/icons-material";
5 stevensc 4
 
3416 stevensc 5
import { debounce } from "@utils";
6
import { useFetch, useSearchQuery } from "@hooks";
2780 stevensc 7
 
3416 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 = () => {
3416 stevensc 16
  const { getParam, setParam } = useSearchQuery();
17
  const { data, loading } = useFetch(
18
    "/impersonate?search=" + getParam("search")
19
  );
20
  const labels = useSelector(({ intl }) => intl.labels);
5 stevensc 21
 
3416 stevensc 22
  const handleSearch = debounce((value) => setParam("keyword", value), 500);
5 stevensc 23
 
1619 stevensc 24
  return (
2806 stevensc 25
    <>
3416 stevensc 26
      <TitleSection title="Usuarios disponibles a personalizar" />
5 stevensc 27
 
3416 stevensc 28
      <Input icon={<Search />} onChange={handleSearch} variant="search" />
5 stevensc 29
 
3416 stevensc 30
      {loading ? (
2864 stevensc 31
        <Spinner />
1619 stevensc 32
      ) : (
3416 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
3416 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}
3416 stevensc 59
        onChange={(newPage) => setParam("page", newPage)}
1619 stevensc 60
      />
2806 stevensc 61
    </>
3416 stevensc 62
  );
63
};
5 stevensc 64
 
3416 stevensc 65
export default ImpersonatePage;