Proyectos de Subversion LeadersLinked - SPA

Rev

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

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