Rev 6366 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState, useRef, useEffect } from 'react'import { useLocation } from 'react-router-dom'import { axios, jsonToParams } from '../../../utils'import Spinner from '../../../shared/loading-spinner/Spinner'import EntityTemplate from '../../components/entity-template/EntityTemplate'import PaginationComponent from '../../../shared/pagination/PaginationComponent'import EmptySection from '../../../shared/empty-section/EmptySection'import FiltersSidebar from '../../components/FiltersSidebar'const MainSection = ({ filters }) => {const [entities, setEntities] = useState([])const [loading, setLoading] = useState(true)const [category, setCategory] = useState('user')const [currentPage, setCurrentPage] = useState(1)const [pages, setPages] = useState(1)const activeFilters = useRef([])const addressFilter = useRef([])const location = useLocation()// getting keywordconst locationParams = new URLSearchParams(location.search)const keyword = locationParams.get('keyword')useEffect(() => {loadEntities()}, [keyword])const loadEntities = async (page = 1) => {setLoading(true)setCurrentPage(page)const urlParams = {page,keyword,}addressFilter.current.forEach(({ name, type }) => {urlParams[type] = name})activeFilters.current.forEach(({ name, value }) => {urlParams[name] = value})await axios.get(`/search/entity/${category}?${jsonToParams(urlParams)}`).then((response) => {const responseData = response.dataif (responseData.success) {setEntities(responseData.data.current.items)setPages(responseData.data.total.pages)}})setLoading(false)}const onChangePageHandler = (currentPage) => {setCurrentPage(currentPage)}return (<main className="main-section-data container px-0 mt-3"><FiltersSidebaronChange={(category) => setCategory(category)}onComplete={loadEntities}/><div className="main-ws-sec"><div className="posts-section">{loading && <Spinner />}{entities.length ? (entities.map((entity) => (<EntityTemplateentity={entity}key={entity.id}onChangePage={onChangePageHandler}/>))) : (<EmptySection message="No hay resultados" />)}</div><PaginationComponentpages={pages}currentActivePage={currentPage}onChangePage={loadEntities}/></div><div className="right-sidebar" /></main>)}export default MainSection