Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3104 stevensc 1
import React, { useEffect } from 'react'
2
import { useDispatch, useSelector } from 'react-redux'
3
import { useParams } from 'react-router-dom'
5 stevensc 4
 
3104 stevensc 5
import { useFetch } from '@hooks'
6
import {
7
  fetchFeeds,
8
  setCurrentPage,
9
  setTimelineUrl
10
} from '@store/feed/feed.actions'
5 stevensc 11
 
3104 stevensc 12
import AppGrid from '@components/UI/layout/AppGrid'
13
import Spinner from '@components/UI/Spinner'
14
import Pagination from '@components/common/Pagination'
15
import FeedList from '@components/dashboard/linkedin/feed-list/FeedList'
3106 stevensc 16
import CompanyFollowers from '@components/company/company-followers'
3104 stevensc 17
import CompanyWidget from '@components/company/company-widget'
18
import AboutCompany from '@components/company/about-company'
3108 stevensc 19
import CompanyInfo from '@components/company/company-info'
5 stevensc 20
 
3104 stevensc 21
export default function LinkedInCompany() {
22
  const { uuid } = useParams()
23
  const dispatch = useDispatch()
24
  const { feeds, timelineUrl, currentPage, loading, pages } = useSelector(
25
    ({ feed }) => feed
26
  )
27
 
28
  const { data, isLoading, refetch } = useFetch(`/company/view/${uuid}`)
29
 
30
  const isFollower = !!data.link_unfollow
31
  const allFeeds = feeds.allIds.map((id) => feeds.byId[id])
32
 
33
  const onChangePageHandler = (currentPage) => {
34
    dispatch(setCurrentPage(currentPage))
35
    window.scrollTo(0, 0)
5 stevensc 36
  }
3104 stevensc 37
 
38
  useEffect(() => {
39
    dispatch(fetchFeeds(timelineUrl, currentPage))
40
  }, [timelineUrl, currentPage])
41
 
42
  useEffect(() => {
43
    dispatch(setTimelineUrl(data.link_timeline))
44
  }, [data])
45
 
46
  if (isLoading) {
47
    return <Spinner />
48
  }
49
 
50
  return (
51
    <AppGrid
3107 stevensc 52
      renderSidebar={() => <CompanyInfo company={data} />}
3104 stevensc 53
      renderMain={() => (
54
        <>
55
          <CompanyWidget company={data} refetch={refetch} />
3106 stevensc 56
          {loading && <Spinner />}
3104 stevensc 57
          {!isFollower && <AboutCompany company={data} />}
58
          {isFollower && !loading && (
59
            <>
60
              <FeedList feeds={allFeeds} />
61
              <Pagination
62
                pages={pages}
63
                page={currentPage}
64
                onChange={onChangePageHandler}
65
              />
66
            </>
67
          )}
68
        </>
69
      )}
70
      renderAside={() => (
71
        <>
72
          <CompanyFollowers companyId={uuid} />
73
          <AboutCompany company={data} />
74
        </>
75
      )}
76
    />
77
  )
5 stevensc 78
}