Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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