Rev 3274 | Rev 3432 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from "react";import { useSelector } from "react-redux";import { useLocation } from "react-router-dom";import { Search } from "@mui/icons-material";import { Grid } from "@mui/material";import { debounce } from "@utils";import { useFetch, useSearchQuery } from "@hooks";import Input from "@components/UI/inputs/Input";import Spinner from "@components/UI/Spinner";import Pagination from "@components/common/Pagination";import SearchList from "@components/search/SearchList";import SearchFilters from "@components/search/SearchFilters";const SearchPage = () => {const { search, pathname } = useLocation();const labels = useSelector(({ intl }) => intl.labels);const { loading, data } = useFetch(pathname + search, {current: { items: [] },total: {pages: 1,},});const { setParam, getParam } = useSearchQuery();const handleSearch = debounce((e) => setParam("keyword", e.target.value));return (<><Inputicon={<Search />}variant="search"onChange={handleSearch}placeholder={labels.search}defaultValue={getParam("keyword")}/><Grid container spacing={1}><Grid item xs={12} md={4} display="flex" direction="column" gap={1}><SearchFilters /></Grid><Grid item xs={12} md={8} display="flex" direction="column" gap={1}>{loading ? (<Spinner />) : (<><SearchList items={data.current.items} /><Paginationpage={data.current?.page}pages={data.total.pages}onChange={(page) => setParam("page", page)}/></>)}</Grid></Grid></>);};export default SearchPage;