Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3104 | Rev 3106 | 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 GroupWidget from '@components/widgets/linkedin/group-widget'
16
import FeedList from '@components/dashboard/linkedin/feed-list/FeedList'
17
import CompanyFollowers from '@components/company/CompanyFollowers'
18
import CompanyWidget from '@components/company/company-widget'
19
import AboutCompany from '@components/company/about-company'
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
3105 stevensc 52
      renderSidebar={() => <GroupWidget group={data} />}
3104 stevensc 53
      renderMain={() => (
54
        <>
55
          <CompanyWidget company={data} refetch={refetch} />
56
          {!isFollower && <AboutCompany company={data} />}
57
          {isFollower && !loading && (
58
            <>
59
              <FeedList feeds={allFeeds} />
60
              <Pagination
61
                pages={pages}
62
                page={currentPage}
63
                onChange={onChangePageHandler}
64
              />
65
            </>
66
          )}
67
        </>
68
      )}
69
      renderAside={() => (
70
        <>
71
          <CompanyFollowers companyId={uuid} />
72
          <AboutCompany company={data} />
73
        </>
74
      )}
75
    />
76
  )
5 stevensc 77
}