Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5798 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

/* eslint-disable react/prop-types */
import React, { Suspense, useEffect } from 'react'
import { useDispatch } from 'react-redux'
import { setTimelineUrl } from '../../../redux/feed/feed.actions'
import { feedTypes } from '../../../redux/feed/feed.types'
import { setIntlLabels } from '../../../redux/intl/intl.action'

// Components
import SocialNetworks from './SocialNetworks'
import ShareFeed from '../share-feed/ShareFeed'
import PeopleYouMayKnow from '../../../shared/helpers/people-you-may-know/PeopleYouMayKnow'
import DailyPulse from '../../../shared/helpers/daily-pulse/DailyPulse'
import HomeNews from './HomeNews'
import Spinner from '../../../shared/loading-spinner/Spinner'
import SuggestWidget from '../../../shared/helpers/my-groups-helper/SuggestWidget'

// Lazy Components
const FeedSection = React.lazy(() => import('../feed-section/FeedSection'))

const HomeSection = ({
  routeTimeline,
  routeDailyPulse,
  backendVars,
  labels,
}) => {
  const {
    image,
    feed,
    moodle_name,
    moodle_image,
    microlearning_appstore,
    microlearning_playstore,
  } = backendVars
  const dispatch = useDispatch()

  useEffect(() => {
    dispatch(setIntlLabels(labels))
    dispatch(setTimelineUrl(routeTimeline))
  }, [])

  return (
    <main className="main-section-data container px-0">
      <aside className="main-left-sidebar d-none d-md-flex">
        <SuggestWidget
          url="/helpers/my-groups"
          title={`${labels.MY_GROUPS}:`}
          btnLabelAccept={labels.GROUP_VIEW}
        />
        <SuggestWidget
          url="/helpers/groups-suggestion"
          title={`${labels.SUGGEST_GROUPS}:`}
          btnLabelAccept={labels.GROUP_VIEW}
        />
        <SocialNetworks
          moodle={{ name: moodle_name, image: moodle_image }}
          microlearning={{
            appStore: microlearning_appstore,
            playStore: microlearning_playstore,
          }}
        />
      </aside>
      <section className="feed-section">
        <ShareFeed
          image={image}
          feedType={feedTypes.DASHBOARD}
          postUrl="/feed/add"
        />
        <Suspense fallback={<Spinner />}>
          <FeedSection
            routeTimeline={routeTimeline}
            feed={feed}
            image={image}
          />
        </Suspense>
      </section>

      <aside className="right-sidebar">
        {routeDailyPulse && <DailyPulse routeDailyPulse={routeDailyPulse} />}
        <PeopleYouMayKnow />
        <HomeNews />
      </aside>
    </main>
  )
}

export default HomeSection