Rev 199 | Rev 867 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect } from "react";
import { useDispatch, useSelector } from "react-redux";
import {
fetchFeeds,
setCurrentPage,
} from "../../../../redux/feed/feed.actions";
import Feed from "../feed-template/Feed";
import Spinner from "../../../UI/Spinner";
import EmptySection from "../../../UI/EmptySection";
import ShareModal from "../../../share-modal/ShareModal";
const PaginationComponent = React.lazy(() =>
import("../../../UI/PaginationComponent")
);
const FeedList = ({ feed, image }) => {
const { allFeeds, timelineUrl, pages, currentPage, loading } = useSelector(
({ feed }) => feed
);
const dispatch = useDispatch();
const fetchSpecificFeed = () =>
dispatch(fetchFeeds(timelineUrl + "/feed/" + feed, 1));
const onChangePageHandler = (currentPage) => {
dispatch(setCurrentPage(currentPage));
window.scrollTo(0, 0);
};
useEffect(() => {
dispatch(setCurrentPage(1));
}, []);
useEffect(() => {
if (feed) {
fetchSpecificFeed();
} else {
dispatch(fetchFeeds(timelineUrl, currentPage));
}
}, [timelineUrl, currentPage, feed]);
if (loading) {
return <Spinner />;
}
if (!allFeeds.length) {
return <EmptySection message="No hay publicaciones" />;
}
return (
<>
{allFeeds.map((feed) => {
return <Feed key={feed.feed_uuid} image={image} {...feed} />;
})}
<React.Suspense fallback={null}>
<PaginationComponent
onChangePage={onChangePageHandler}
pages={pages}
isRow
currentActivePage={currentPage}
/>
<ShareModal timelineUrl={timelineUrl} currentPage={currentPage} />
</React.Suspense>
</>
);
};
export default FeedList;