Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 200 | Rev 1688 | 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'
2
import { useDispatch } from 'react-redux'
3
import { setTimelineUrl } from '../../redux/feed/feed.actions'
4
import { getBackendVars } from '../../services/backendVars'
5
import { useParams } from 'react-router-dom'
5 stevensc 6
 
856 stevensc 7
import FeedList from '../../components/dashboard/linkedin/feed-list/FeedList'
8
import GroupInfo from '../../components/widgets/linkedin/InfoWidget'
9
import AboutCompany from '../../components/company/AboutCompany'
10
import CompanyFollowers from '../../components/company/CompanyFollowers'
11
import CompanyActions from '../../components/company/CompanyActions'
5 stevensc 12
 
856 stevensc 13
import './styles/linkedin.scss'
5 stevensc 14
 
15
const LinkedInCompany = () => {
856 stevensc 16
  const [backendVars, setBackendVars] = useState(null)
17
  const [actionsUrls, setActionsUrls] = useState(null)
18
  const [isFollower, setIsFollower] = useState(false)
19
  const { uuid } = useParams()
20
  const dispatch = useDispatch()
5 stevensc 21
 
22
  const getCompanyVars = () => {
23
    getBackendVars(`/company/view/${uuid}`)
24
      .then((vars) => {
856 stevensc 25
        const actions = {}
5 stevensc 26
 
27
        Object.entries(vars).forEach(([key, value]) => {
856 stevensc 28
          if (!key.includes('link')) {
29
            return
5 stevensc 30
          }
31
 
856 stevensc 32
          actions[key] = value
33
        })
5 stevensc 34
 
856 stevensc 35
        setActionsUrls(actions)
36
        dispatch(setTimelineUrl(vars.link_timeline))
37
        setIsFollower(!!vars.link_unfollow)
38
        setBackendVars(vars)
5 stevensc 39
      })
40
      .catch((err) => {
856 stevensc 41
        console.log(`Error: ${err}`)
42
      })
43
  }
5 stevensc 44
 
45
  useEffect(() => {
856 stevensc 46
    getCompanyVars()
47
  }, [])
5 stevensc 48
 
49
  return (
856 stevensc 50
    <main className='w-100'>
51
      <div className='container p-0 app__body layout__content'>
52
        <div className='d-flex flex-column'>
5 stevensc 53
          <GroupInfo
54
            cover={backendVars?.cover}
55
            image={backendVars?.image}
56
            name={backendVars?.company_name}
57
            overview={backendVars?.overview}
58
            id={backendVars?.company_uuid}
59
            totalMembers={backendVars?.total_followers}
60
            groupType={backendVars?.company_size}
61
            accessibility={backendVars?.industry}
62
          />
63
        </div>
856 stevensc 64
        <div className='d-flex flex-column' style={{ gap: '.5rem' }}>
5 stevensc 65
          <CompanyActions
66
            name={backendVars?.company_name}
67
            image={backendVars?.image}
68
            companyId={backendVars?.company_uuid}
69
            cover={backendVars?.cover}
70
            overview={backendVars?.overview}
71
            refetch={getCompanyVars}
72
            actionLinks={actionsUrls}
73
          />
74
          {!isFollower ? (
75
            <AboutCompany {...backendVars} />
76
          ) : (
77
            <FeedList
78
              image={`/storage/type/company/code/${backendVars?.companyId}/${
856 stevensc 79
                backendVars?.image ? `filename/${backendVars?.image}` : ''
5 stevensc 80
              }`}
81
            />
82
          )}
83
        </div>
856 stevensc 84
        <div className='d-flex flex-column' style={{ gap: '.5rem' }}>
5 stevensc 85
          <CompanyFollowers companyId={uuid} />
86
          <AboutCompany {...backendVars} />
87
        </div>
88
      </div>
89
    </main>
856 stevensc 90
  )
91
}
5 stevensc 92
 
856 stevensc 93
export default LinkedInCompany