Rev 4063 | Rev 5106 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React, { Suspense, useEffect } 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 PaginationComponent = React.lazy(() => import("../../../shared/pagination/PaginationComponent"))const isDashboard = window.location.pathname.includes('dashboard')const isMobile = window.innerWidth < 1000const FeedSection = ({ feed, image }) => {const { allFeeds, timelineUrl, pages, currentPage, loading } = useSelector((state) => state.feed)const dispatch = useDispatch()const fetchSpecificFeed = () => dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))useEffect(() => {if (feed) {return fetchSpecificFeed()} else {return dispatch(fetchFeeds(timelineUrl, currentPage))}}, []);const onChangePageHandler = (currentPage) => {dispatch(setCurrentPage(currentPage));dispatch(fetchFeeds(timelineUrl, currentPage))window.scrollTo(0, 0);};if (loading) {return <Spinner />}return (<>{allFeeds.length? allFeeds.map((feed, index) => {if (isMobile && isDashboard && index === 5) {const PeopleYouMayKnow = React.lazy(() => import("../../../shared/helpers/people-you-may-know/PeopleYouMayKnow"))return (<><Suspense fallback={null}><PeopleYouMayKnow /></Suspense><Feedfeed={feed}key={feed.feed_unique}owner_shared={feed.owner_shared}image={image}/></>)}if (isMobile && isDashboard && index === 8) {const HomeNews = React.lazy(() => import("../home-section/HomeNews"))return (<><Suspense fallback={null}><HomeNews /></Suspense><Feedfeed={feed}key={feed.feed_unique}owner_shared={feed.owner_shared}image={image}/></>)}return (<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>}<Suspense fallback={null}><ShareModaltimelineUrl={timelineUrl}currentPage={currentPage}/></Suspense><Suspense fallback={null}><PaginationComponentonChangePage={onChangePageHandler}pages={pages}isRowcurrentActivePage={currentPage}/></Suspense></>);};export default React.memo(FeedSection);