Rev 4019 | Rev 4021 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { useEffect, useState } from "react";import { useDispatch, useSelector } from "react-redux";import { fetchFeeds, setCurrentPage } from "../../../redux/feed/feed.actions";import Spinner from "../../../shared/loading-spinner/Spinner";import Feed from "../feed/FeedTemplate";const ShareModal = React.lazy(() => import("../share-modal/ShareModal"))const HomeNews = React.lazy(() => import("../home-section/HomeNews"))const PaginationComponent = React.lazy(() => import("../../../shared/pagination/PaginationComponent"))const PATH = window.location.pathname// Props object {routeTimeline, feed, image}const FeedSection = ({ feed, image }) => {const { allFeeds, timelineUrl, pages, currentPage, loading } = useSelector((state) => state.feed)const [state, setState] = useState({PeopleYouMayKnow: null})const { PeopleYouMayKnow } = stateconst dispatch = useDispatch()const fetchSpecificFeed = () => dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))useEffect(() => {if (feed) {return fetchSpecificFeed()} else {return dispatch(fetchFeeds(timelineUrl, currentPage))}}, []);useEffect(async () => {if (window.innerWidth < 1000) {const { PeopleYouMayKnow } = await import("../../../shared/helpers/people-you-may-know/PeopleYouMayKnow")setState({ ...state, PeopleYouMayKnow })}}, []);const onChangePageHandler = (currentPage) => {dispatch(setCurrentPage(currentPage));dispatch(fetchFeeds(timelineUrl, currentPage))window.scrollTo(0, 0);};if (loading) return (<div className="w-100 h-100" style={{ display: "grid", placeItems: 'center' }}><Spinner /></div>)return (<>{allFeeds.length? allFeeds.map((feed, index) =><>{(index === 5 && PATH.includes('dashboard')) &&<div className='d-block d-md-none'><PeopleYouMayKnow /></div>}{(index === 8 && PATH.includes('dashboard')) &&< div className='d-block d-md-none'><HomeNews /></div>}<Feedfeed={feed}key={feed.feed_unique}owner_shared={feed.owner_shared}image={image}/></>):<div style={{ display: 'grid', width: '100%', padding: '20px', placeItems: 'center' }}><h2>No hay publicaciones</h2></div>}<ShareModaltimelineUrl={timelineUrl}currentPage={currentPage}/><PaginationComponentonChangePage={onChangePageHandler}pages={pages}isRowcurrentActivePage={currentPage}/></>);};export default React.memo(FeedSection);