Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
2964 stevensc 1
import React, { Suspense } from "react";
1 www 2
import { connect } from "react-redux";
3
import { setTimelineUrl } from "../../../redux/feed/feed.actions";
4
import { feedTypes } from "../../../redux/feed/feed.types";
2964 stevensc 5
import { addNotification } from "../../../redux/notification/notification.actions";
2966 stevensc 6
import Spinner from "../../../shared/loading-spinner/Spinner";
7
import NotificationAlert from "../../../shared/notification/NotificationAlert";
8
import ShareModal from "../share-modal/ShareModal";
1 www 9
 
2966 stevensc 10
const SuggestedGroupsHelper = React.lazy(() => ("../../../shared/helpers/suggested-groups-helper/SuggestedGroupsHelper"));
11
const SocialNetworks = React.lazy(() => import("./SocialNetworks"));
12
const ShareFeed = React.lazy(() => import("../share-feed/ShareFeed"));
13
const FeedSection = React.lazy(() => import("../feed-section/FeedSection"));
2964 stevensc 14
const PeopleYouMayKnow = React.lazy(() => import("../../../shared/helpers/people-you-may-know/PeopleYouMayKnow"));
15
const HomeNews = React.lazy(() => import("./HomeNews"));
16
 
1 www 17
import styles from "./HomeSection.module.scss";
18
 
19
const HomeSection = (props) => {
20
  // props destructuring
21
  const { routeTimeline, addNotification } = props;
22
 
23
  // backendVars destructuring
24
  const { image, fullName, country, visits, connections, description, feed } = props.backendVars;
25
 
26
  // redux destructuring
27
  const { setTimelineUrl } = props;
2207 stevensc 28
 
1 www 29
  setTimelineUrl(routeTimeline);
30
  return (
31
    <div>
32
      <div className="main-section">
33
        <div className={styles.mainSection}>
1449 steven 34
          <div className="d-none d-sm-none d-md-block d-lg-block">
35
            <div className={styles.sectionHeader}>
2964 stevensc 36
              <Suspense
37
                fallback={
38
                  <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
39
                    <Spinner />
40
                  </div>
41
                }
42
              >
43
                <SuggestedGroupsHelper />
44
              </Suspense>
45
              <Suspense
46
                fallback={
47
                  <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
48
                    <Spinner />
49
                  </div>
50
                }
51
              >
52
                <SocialNetworks />
53
              </Suspense>
1447 steven 54
            </div>
1 www 55
          </div>
56
          <div className={styles.feedSection}>
2964 stevensc 57
            <Suspense
58
              fallback={
59
                <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
60
                  <Spinner />
61
                </div>
62
              }
63
            >
64
              <ShareFeed image={image} feedType={feedTypes.DASHBOARD} postUrl="/feed/add" />
65
            </Suspense>
66
            <Suspense
67
              fallback={
68
                <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
69
                  <Spinner />
70
                </div>
71
              }
72
            >
73
              <FeedSection
74
                routeTimeline={routeTimeline}
75
                feed={feed}
76
                image={image}
77
              />
78
            </Suspense>
1 www 79
          </div>
80
          <div className={styles.peopleYouMayKnow}>
2964 stevensc 81
            <Suspense
82
              fallback={
83
                <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
84
                  <Spinner />
85
                </div>
86
              }
87
            >
88
              <PeopleYouMayKnow />
89
            </Suspense>
90
            <Suspense
91
              fallback={
92
                <div className="w-100 h-100" style={{ display: "flex", placeItems: 'center' }}>
93
                  <Spinner />
94
                </div>
95
              }
96
            >
97
              <HomeNews />
98
            </Suspense>
1 www 99
          </div>
100
        </div>
101
      </div>
102
      <ShareModal />
103
      <NotificationAlert />
104
    </div>
105
  );
106
};
107
 
108
const mapDispatchToProps = {
109
  setTimelineUrl: (url) => setTimelineUrl(url),
110
  addNotification: (notification) => addNotification(notification),
111
};
112
 
113
export default connect(null, mapDispatchToProps)(HomeSection);