Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4265 | Rev 5107 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React, { useEffect } from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { fetchFeeds, setCurrentPage } from '../../../../redux/feed/feed.actions'
import EmptySection from '../../../../shared/empty-section/EmptySection'
import Spinner from '../../../../shared/loading-spinner/Spinner'
import PaginationComponent from '../../../../shared/pagination/PaginationComponent'
import ShareModal from '../../../components/share-modal/ShareModal'
import Feed from './Feed'

const FeedList = ({
  feed = {},
  image = ''
}) => {

  const { allFeeds, timelineUrl, pages, currentPage, loading } = useSelector((state) => state.feed)
  const dispatch = useDispatch()


  const fetchSpecificFeed = () => dispatch(fetchFeeds(timelineUrl + '/feed/' + feed, 1))

  useEffect(() => {
    if (feed) {
      return fetchSpecificFeed()
    } else {
      return dispatch(fetchFeeds(timelineUrl, currentPage))
    }
  }, []);


  const onChangePageHandler = (currentPage) => {
    dispatch(setCurrentPage(currentPage));
    dispatch(fetchFeeds(timelineUrl, currentPage))
    window.scrollTo(0, 0);
  };

  if (loading) {
    return <Spinner />
  }

  if (!allFeeds.length) {
    return <EmptySection message='No hay publicaciones' />
  }

  return (
    <>
      {allFeeds.map((feed) => {
        return (
          <Feed
            key={feed.feed_unique}
            image={image}
            {...feed}
          />
        )
      })}
      <PaginationComponent
        onChangePage={onChangePageHandler}
        pages={pages}
        isRow
        currentActivePage={currentPage}
      />
      <ShareModal
        timelineUrl={timelineUrl}
        currentPage={currentPage}
      />
    </>
  )
}

export default FeedList