Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4020 | Rev 4022 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3993 stevensc 1
/* eslint-disable react/prop-types */
4021 stevensc 2
import React, { useEffect } from "react";
3993 stevensc 3
import { useDispatch, useSelector } from "react-redux";
4
import { fetchFeeds, setCurrentPage } from "../../../redux/feed/feed.actions";
4017 stevensc 5
import Feed from "../feed/FeedTemplate";
3993 stevensc 6
 
4017 stevensc 7
const ShareModal = React.lazy(() => import("../share-modal/ShareModal"))
8
const PaginationComponent = React.lazy(() => import("../../../shared/pagination/PaginationComponent"))
9
 
3993 stevensc 10
const PATH = window.location.pathname
11
 
4017 stevensc 12
// Props object {routeTimeline, feed, image}
3993 stevensc 13
 
4017 stevensc 14
const FeedSection = ({ feed, image }) => {
15
 
4021 stevensc 16
  const { allFeeds, timelineUrl, pages, currentPage } = useSelector((state) => state.feed)
3993 stevensc 17
  const dispatch = useDispatch()
18
 
19
 
20
  const fetchSpecificFeed = () => dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))
21
 
22
  useEffect(() => {
23
    if (feed) {
24
      return fetchSpecificFeed()
25
    } else {
26
      return dispatch(fetchFeeds(timelineUrl, currentPage))
27
    }
28
  }, []);
29
 
30
 
31
  const onChangePageHandler = (currentPage) => {
32
    dispatch(setCurrentPage(currentPage));
33
    dispatch(fetchFeeds(timelineUrl, currentPage))
34
    window.scrollTo(0, 0);
35
  };
36
 
37
  return (
38
    <>
39
      {allFeeds.length
4021 stevensc 40
        ? allFeeds.map((feed, index) => {
41
          if (window.innerWidth < 1000 && index === 5 && PATH.includes('dashboard')) {
42
            const PeopleYouMayKnow = React.lazy(() => import("../../../shared/helpers/people-you-may-know/PeopleYouMayKnow"))
43
            return (
44
              <>
4020 stevensc 45
                <PeopleYouMayKnow />
4021 stevensc 46
                <Feed
47
                  feed={feed}
48
                  key={feed.feed_unique}
49
                  owner_shared={feed.owner_shared}
50
                  image={image}
51
                />
52
              </>
53
            )
54
          }
55
          if (window.innerWidth < 1000 && index === 8 && PATH.includes('dashboard')) {
56
            const HomeNews = React.lazy(() => import("../home-section/HomeNews"))
57
            return (
58
              <>
3993 stevensc 59
                <HomeNews />
4021 stevensc 60
                <Feed
61
                  feed={feed}
62
                  key={feed.feed_unique}
63
                  owner_shared={feed.owner_shared}
64
                  image={image}
65
                />
66
              </>
67
            )
68
          }
69
          return (
4017 stevensc 70
            <Feed
3993 stevensc 71
              feed={feed}
72
              key={feed.feed_unique}
73
              owner_shared={feed.owner_shared}
74
              image={image}
4017 stevensc 75
            />
4021 stevensc 76
          )
77
        })
3993 stevensc 78
        :
79
        <div style={{ display: 'grid', width: '100%', padding: '20px', placeItems: 'center' }}>
80
          <h2>No hay publicaciones</h2>
81
        </div>
82
      }
83
      <ShareModal
84
        timelineUrl={timelineUrl}
85
        currentPage={currentPage}
86
      />
87
      <PaginationComponent
4020 stevensc 88
        onChangePage={onChangePageHandler}
89
        pages={pages}
4019 stevensc 90
        isRow
91
        currentActivePage={currentPage}
3993 stevensc 92
      />
93
    </>
94
  );
95
};
96
 
97
export default React.memo(FeedSection);