Proyectos de Subversion LeadersLinked - SPA

Rev

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