Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
856 stevensc 1
import React, { useEffect, useState } from 'react'
1800 stevensc 2
import { useDispatch, useSelector } from 'react-redux'
856 stevensc 3
import { useParams } from 'react-router-dom'
5 stevensc 4
 
1688 stevensc 5
import {
6
  fetchFeeds,
7
  setCurrentPage,
8
  setTimelineUrl
9
} from '../../redux/feed/feed.actions'
10
import { getBackendVars } from '../../services/backendVars'
11
 
1800 stevensc 12
import AppGrid from '@app/components/UI/layout/AppGrid'
13
import AboutCompany from '@app/components/company/AboutCompany'
14
import CompanyActions from '@app/components/company/CompanyActions'
15
import CompanyFollowers from '@app/components/company/CompanyFollowers'
16
import FeedList from '@app/components/dashboard/linkedin/feed-list/FeedList'
3063 stevensc 17
import GroupInfo from '@app/components/widgets/linkedin/group-widget'
2964 stevensc 18
import Pagination from '@components/common/Pagination'
5 stevensc 19
 
1811 stevensc 20
import './styles/linkedin.scss'
21
 
5 stevensc 22
const LinkedInCompany = () => {
856 stevensc 23
  const [backendVars, setBackendVars] = useState(null)
1809 stevensc 24
  const [actionsUrls, setActionsUrls] = useState({})
856 stevensc 25
  const [isFollower, setIsFollower] = useState(false)
1688 stevensc 26
  const { feeds, timelineUrl, currentPage, loading, pages } = useSelector(
27
    ({ feed }) => feed
28
  )
29
  const allFeeds = feeds.allIds.map((id) => feeds.byId[id])
856 stevensc 30
  const { uuid } = useParams()
31
  const dispatch = useDispatch()
5 stevensc 32
 
33
  const getCompanyVars = () => {
1688 stevensc 34
    getBackendVars(`/company/view/${uuid}`).then((vars) => {
35
      const actions = {}
5 stevensc 36
 
1688 stevensc 37
      Object.entries(vars).forEach(([key, value]) => {
38
        if (!key.includes('link')) return
39
        actions[key] = value
40
      })
5 stevensc 41
 
1688 stevensc 42
      setActionsUrls(actions)
43
      dispatch(setTimelineUrl(vars.link_timeline))
44
      setIsFollower(!!vars.link_unfollow)
45
      setBackendVars(vars)
46
    })
47
  }
5 stevensc 48
 
1688 stevensc 49
  const onChangePageHandler = (currentPage) => {
50
    dispatch(setCurrentPage(currentPage))
51
    window.scrollTo(0, 0)
856 stevensc 52
  }
5 stevensc 53
 
54
  useEffect(() => {
2196 stevensc 55
    dispatch(fetchFeeds(timelineUrl, currentPage))
1688 stevensc 56
  }, [timelineUrl, currentPage])
57
 
1802 stevensc 58
  useEffect(() => {
1803 stevensc 59
    getCompanyVars()
1802 stevensc 60
  }, [uuid])
61
 
5 stevensc 62
  return (
2805 stevensc 63
    <AppGrid
64
      renderSidebar={() => (
65
        <GroupInfo
66
          cover={backendVars?.cover}
67
          image={backendVars?.image}
68
          name={backendVars?.company_name}
69
          overview={backendVars?.overview}
70
          id={backendVars?.company_uuid}
71
          totalMembers={backendVars?.total_followers}
72
          groupType={backendVars?.company_size}
73
          accessibility={backendVars?.industry}
74
        />
75
      )}
76
      renderMain={() => (
77
        <>
78
          <CompanyActions
79
            name={backendVars?.company_name}
80
            image={backendVars?.image}
81
            companyId={backendVars?.company_uuid}
5 stevensc 82
            cover={backendVars?.cover}
83
            overview={backendVars?.overview}
2805 stevensc 84
            refetch={getCompanyVars}
85
            actionLinks={actionsUrls}
5 stevensc 86
          />
2805 stevensc 87
          {!isFollower ? <AboutCompany {...backendVars} /> : null}
88
          {isFollower && !loading ? <FeedList feeds={allFeeds} /> : null}
2964 stevensc 89
          <Pagination
2805 stevensc 90
            pages={pages}
2964 stevensc 91
            page={currentPage}
92
            onChange={onChangePageHandler}
2805 stevensc 93
          />
94
        </>
95
      )}
96
      renderAside={() => (
97
        <>
98
          <CompanyFollowers companyId={uuid} />
99
          <AboutCompany {...backendVars} />
100
        </>
101
      )}
102
    />
856 stevensc 103
  )
104
}
5 stevensc 105
 
856 stevensc 106
export default LinkedInCompany