Proyectos de Subversion LeadersLinked - SPA

Rev

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

import React, { useState } from "react";
import { useSelector } from "react-redux";
import { Search } from "@mui/icons-material";

import { debounce } from "@utils";
import { useFetch, useSearchQuery } from "@hooks";

import Input from "@components/UI/inputs/Input";
import TitleSection from "@components/UI/TitleSection";
import AddProfileModal from "@components/modals/AddProfileModal";
import MyProfilesList from "@components/profile/MyProfilesList";

const MyProfilesPage = () => {
  const [isShowAddModal, setIsShowAddModal] = useState(false);

  const toggleModal = () => setIsShowAddModal(!isShowAddModal);

  const labels = useSelector(({ intl }) => intl.labels);

  const { getStringParams, setParam } = useSearchQuery();
  const { data, loading, refetch } = useFetch(
    "/profile/my-profiles" + getStringParams()
  );

  const handleSearch = debounce((e) => setParam("search", e.target.value));

  return (
    <>
      <TitleSection
        title={labels.my_profiles}
        onAdd={toggleModal}
        addLabel={labels.add}
      />
      <Input icon={<Search />} onChange={handleSearch} variant="search" />
      <MyProfilesList profiles={data} loading={loading} onComplete={refetch} />
      <AddProfileModal
        show={isShowAddModal}
        getProfiles={() => refetch()}
        onHide={toggleModal}
      />
    </>
  );
};

export default MyProfilesPage;