Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4062 | Rev 4222 | 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 */
4022 stevensc 2
import React, { Suspense, 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";
6
const ShareModal = React.lazy(() => import("../share-modal/ShareModal"))
7
const PaginationComponent = React.lazy(() => import("../../../shared/pagination/PaginationComponent"))
8
 
4022 stevensc 9
const isDashboard = window.location.pathname.includes('dashboard')
10
const isMobile = window.innerWidth < 1000
3993 stevensc 11
 
4017 stevensc 12
const FeedSection = ({ feed, image }) => {
13
 
4021 stevensc 14
  const { allFeeds, timelineUrl, pages, currentPage } = useSelector((state) => state.feed)
3993 stevensc 15
  const dispatch = useDispatch()
16
 
17
 
18
  const fetchSpecificFeed = () => dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))
19
 
20
  useEffect(() => {
21
    if (feed) {
22
      return fetchSpecificFeed()
23
    } else {
24
      return dispatch(fetchFeeds(timelineUrl, currentPage))
25
    }
26
  }, []);
27
 
28
 
29
  const onChangePageHandler = (currentPage) => {
30
    dispatch(setCurrentPage(currentPage));
31
    dispatch(fetchFeeds(timelineUrl, currentPage))
32
    window.scrollTo(0, 0);
33
  };
34
 
35
  return (
36
    <>
37
      {allFeeds.length
4021 stevensc 38
        ? allFeeds.map((feed, index) => {
4022 stevensc 39
          if (isMobile && isDashboard && index === 5) {
4021 stevensc 40
            const PeopleYouMayKnow = React.lazy(() => import("../../../shared/helpers/people-you-may-know/PeopleYouMayKnow"))
41
            return (
42
              <>
4062 stevensc 43
                <Suspense fallback={null}>
44
                  <PeopleYouMayKnow />
45
                </Suspense>
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
          }
4022 stevensc 55
          if (isMobile && isDashboard && index === 8) {
4021 stevensc 56
            const HomeNews = React.lazy(() => import("../home-section/HomeNews"))
57
            return (
58
              <>
4062 stevensc 59
                <Suspense fallback={null}>
60
                  <HomeNews />
61
                </Suspense>
4021 stevensc 62
                <Feed
63
                  feed={feed}
64
                  key={feed.feed_unique}
65
                  owner_shared={feed.owner_shared}
66
                  image={image}
67
                />
68
              </>
69
            )
70
          }
71
          return (
4017 stevensc 72
            <Feed
3993 stevensc 73
              feed={feed}
74
              key={feed.feed_unique}
75
              owner_shared={feed.owner_shared}
76
              image={image}
4017 stevensc 77
            />
4021 stevensc 78
          )
79
        })
3993 stevensc 80
        :
81
        <div style={{ display: 'grid', width: '100%', padding: '20px', placeItems: 'center' }}>
82
          <h2>No hay publicaciones</h2>
83
        </div>
84
      }
4022 stevensc 85
      <Suspense fallback={null}>
4063 stevensc 86
        <ShareModal
87
          timelineUrl={timelineUrl}
88
          currentPage={currentPage}
89
        />
90
      </Suspense>
91
      <Suspense fallback={null}>
4022 stevensc 92
        <PaginationComponent
93
          onChangePage={onChangePageHandler}
94
          pages={pages}
95
          isRow
96
          currentActivePage={currentPage}
97
        />
98
      </Suspense>
3993 stevensc 99
    </>
100
  );
101
};
102
 
103
export default React.memo(FeedSection);