Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

import React, { Suspense } from "react";
import { connect } from "react-redux";
import { setTimelineUrl } from "../../../redux/feed/feed.actions";
import { feedTypes } from "../../../redux/feed/feed.types";
import { addNotification } from "../../../redux/notification/notification.actions";
import Spinner from "../../../shared/loading-spinner/Spinner";
import NotificationAlert from "../../../shared/notification/NotificationAlert";
import ShareModal from "../share-modal/ShareModal";

import SuggestedGroupsHelper from "../../../shared/helpers/suggested-groups-helper/SuggestedGroupsHelper";
import SocialNetworks from "./SocialNetworks";
import ShareFeed from "../share-feed/ShareFeed";
import PeopleYouMayKnow from "../../../shared/helpers/people-you-may-know/PeopleYouMayKnow";
import HomeNews from "./HomeNews";

const FeedSection = React.lazy(() => import("../feed-section/FeedSection"));

import styles from "./HomeSection.module.scss";

const HomeSection = (props) => {
  // props destructuring
  const { routeTimeline, addNotification } = props;

  // backendVars destructuring
  const { image, fullName, country, visits, connections, description, feed } = props.backendVars;

  // redux destructuring
  const { setTimelineUrl } = props;

  setTimelineUrl(routeTimeline);
  return (
    <div>
      <div className="main-section">
        <div className={styles.mainSection}>
          <div className="d-none d-sm-none d-md-block d-lg-block">
            <div className={styles.sectionHeader}>
              <SuggestedGroupsHelper />
              <SocialNetworks />
            </div>
          </div>
          <div className={styles.feedSection}>
            <ShareFeed image={image} feedType={feedTypes.DASHBOARD} postUrl="/feed/add" />
            <Suspense
              fallback={
                <div className="w-100 h-100" style={{ display: "grid", placeItems: 'center' }}>
                  <Spinner />
                </div>
              }
            >
              <FeedSection
                routeTimeline={routeTimeline}
                feed={feed}
                image={image}
              />
            </Suspense>
          </div>
          <div className={styles.peopleYouMayKnow}>
            <PeopleYouMayKnow />
            <HomeNews />
          </div>
        </div>
      </div>
      <ShareModal />
      <NotificationAlert />
    </div>
  );
};

const mapDispatchToProps = {
  setTimelineUrl: (url) => setTimelineUrl(url),
  addNotification: (notification) => addNotification(notification),
};

export default connect(null, mapDispatchToProps)(HomeSection);