Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev Autor Línea Nro. Línea
6601 stevensc 1
import React, { lazy, Suspense, useEffect } from 'react'
2
import { useDispatch, useSelector } from 'react-redux'
6514 stevensc 3
import { BrowserRouter as Router, Switch } from 'react-router-dom'
6707 stevensc 4
import styled from 'styled-components'
6490 stevensc 5
import { getLanguage } from '../../redux/intl/intl.action'
6
 
6530 stevensc 7
import PublicRoute from './PublicRoute'
6601 stevensc 8
import PrivateRoute from './PrivateRoute'
6707 stevensc 9
import Spinner from '../components/UI/Spinner'
6512 stevensc 10
import NotificationAlert from '../components/UI/notification/NotificationAlert'
6727 stevensc 11
import MyProfilesPage from '../pages/profiles/MyProfilesPage'
12
import PeopleViewedMyProfilePage from '../pages/profiles/PeopleViewedMyProfilePage'
13
import SavedJobsPage from '../pages/jobs/SavedJobsPage'
6729 stevensc 14
import AppliedJobsPage from '../pages/jobs/AppliedJobsPage'
6490 stevensc 15
 
6707 stevensc 16
const Header = lazy(() => import('../components/navbar/Header'))
6601 stevensc 17
const Auth = lazy(() => import('../pages/auth/Auth'))
18
const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))
6707 stevensc 19
const MyConnectionsPage = lazy(() =>
6719 stevensc 20
  import('../pages/connections/MyConnectionsPage')
6707 stevensc 21
)
6724 stevensc 22
const InvitationsReceivedPage = lazy(() =>
23
  import('../pages/connections/InvitationsReceivedPage')
24
)
6719 stevensc 25
const InvitationsSendPage = lazy(() =>
6724 stevensc 26
  import('../pages/connections/InvitationsSendPage')
6719 stevensc 27
)
6725 stevensc 28
const PeopleYouMayKnowPage = lazy(() =>
29
  import('../pages/connections/PeopleYouMayKnowPage')
30
)
31
const PeopleBlockedPage = lazy(() =>
32
  import('../pages/connections/PeopleBlockedPage')
33
)
6490 stevensc 34
 
6707 stevensc 35
const StyledSpinnerContainer = styled.div`
6718 stevensc 36
  margin: 1rem auto;
37
  position: relative;
6717 stevensc 38
  width: 80px;
39
  text-align: center;
40
  height: 80px;
41
  border-radius: 100px;
42
  background-color: #fff;
43
  line-height: 80px;
44
  border: 1px solid #e1e1e1;
45
  cursor: pointer;
6707 stevensc 46
`
47
 
6490 stevensc 48
const AppRouter = () => {
6601 stevensc 49
  const { isAuth } = useSelector(({ auth }) => auth)
6490 stevensc 50
  const dispatch = useDispatch()
51
 
52
  useEffect(() => {
53
    dispatch(getLanguage())
54
  }, [])
55
 
56
  return (
57
    <Router>
6724 stevensc 58
      <Suspense fallback={null}>{isAuth && <Header />}</Suspense>
59
 
6707 stevensc 60
      <Suspense
61
        fallback={
62
          <StyledSpinnerContainer>
63
            <Spinner />
64
          </StyledSpinnerContainer>
65
        }
66
      >
67
        <Switch>
6601 stevensc 68
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
69
            <DashboardPage />
70
          </PrivateRoute>
6707 stevensc 71
          <PrivateRoute
72
            exact
73
            path="/connection/my-connections"
74
            isAuthenticated={isAuth}
75
          >
76
            <MyConnectionsPage />
77
          </PrivateRoute>
6719 stevensc 78
          <PrivateRoute
79
            exact
80
            path="/connection/invitations-sent"
81
            isAuthenticated={isAuth}
82
          >
83
            <InvitationsSendPage />
84
          </PrivateRoute>
6724 stevensc 85
          <PrivateRoute
86
            exact
87
            path="/connection/invitations-received"
88
            isAuthenticated={isAuth}
89
          >
90
            <InvitationsReceivedPage />
91
          </PrivateRoute>
6725 stevensc 92
          <PrivateRoute
93
            exact
94
            path="/connection/people-you-may-know"
95
            isAuthenticated={isAuth}
96
          >
97
            <PeopleYouMayKnowPage />
98
          </PrivateRoute>
99
          <PrivateRoute
100
            exact
6726 stevensc 101
            path="/connection/people-blocked"
6725 stevensc 102
            isAuthenticated={isAuth}
103
          >
104
            <PeopleBlockedPage />
105
          </PrivateRoute>
6727 stevensc 106
          <PrivateRoute
107
            exact
108
            path="/profile/my-profiles"
109
            isAuthenticated={isAuth}
110
          >
111
            <MyProfilesPage />
112
          </PrivateRoute>
113
          <PrivateRoute
114
            exact
115
            path="/profile/people-viewed-profile"
116
            isAuthenticated={isAuth}
117
          >
118
            <PeopleViewedMyProfilePage />
119
          </PrivateRoute>
120
          <PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}>
121
            <SavedJobsPage />
122
          </PrivateRoute>
123
          <PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}>
6729 stevensc 124
            <AppliedJobsPage />
6727 stevensc 125
          </PrivateRoute>
6601 stevensc 126
 
127
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 128
            <Auth />
129
          </PublicRoute>
6707 stevensc 130
        </Switch>
131
      </Suspense>
6512 stevensc 132
 
133
      <NotificationAlert />
6490 stevensc 134
    </Router>
135
  )
136
}
137
 
138
export default AppRouter