Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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