Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7266 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6830 stevensc 1
import React, { useEffect } from 'react'
2
import { useDispatch, useSelector } from 'react-redux'
3
import { fetchFeeds, setCurrentPage } from '../../../redux/feed/feed.actions'
4
 
5
import Feed from './Feed'
6
import Spinner from '../../UI/Spinner'
7
import EmptySection from '../../UI/EmptySection'
8
import ShareModal from '../../share-modal/ShareModal'
9
 
10
const PaginationComponent = React.lazy(() =>
11
  import('../../UI/PaginationComponent')
12
)
13
 
14
const FeedList = ({ feed, image }) => {
15
  const { allFeeds, timelineUrl, pages, currentPage, loading } = useSelector(
16
    ({ feed }) => feed
17
  )
18
  const dispatch = useDispatch()
19
 
7267 stevensc 20
  const fetchSpecificFeed = () =>
21
    dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))
6830 stevensc 22
 
23
  const onChangePageHandler = (currentPage) => {
24
    dispatch(setCurrentPage(currentPage))
25
    window.scrollTo(0, 0)
26
  }
27
 
7266 stevensc 28
  useEffect(() => {
7267 stevensc 29
    dispatch(setCurrentPage(1))
30
  }, [])
7266 stevensc 31
 
32
  useEffect(() => {
7267 stevensc 33
    if (feed) {
34
      fetchSpecificFeed()
35
    } else {
7266 stevensc 36
      dispatch(fetchFeeds(timelineUrl, currentPage))
7267 stevensc 37
    }
38
  }, [timelineUrl, currentPage, feed])
7266 stevensc 39
 
6830 stevensc 40
  if (loading) {
41
    return <Spinner />
42
  }
43
 
44
  if (!allFeeds.length) {
45
    return <EmptySection message="No hay publicaciones" />
46
  }
47
 
48
  return (
49
    <>
50
      {allFeeds.map((feed) => {
51
        return <Feed key={feed.feed_uuid} image={image} {...feed} />
52
      })}
53
      <React.Suspense fallback={null}>
54
        <PaginationComponent
55
          onChangePage={onChangePageHandler}
56
          pages={pages}
57
          isRow
58
          currentActivePage={currentPage}
59
        />
60
        <ShareModal timelineUrl={timelineUrl} currentPage={currentPage} />
61
      </React.Suspense>
62
    </>
63
  )
64
}
65
 
66
export default FeedList