Proyectos de Subversion LeadersLinked - SPA

Rev

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

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