Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6740 | Rev 6748 | 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'
6490 stevensc 4
import { getLanguage } from '../../redux/intl/intl.action'
5
 
6530 stevensc 6
import PublicRoute from './PublicRoute'
6601 stevensc 7
import PrivateRoute from './PrivateRoute'
6707 stevensc 8
import Spinner from '../components/UI/Spinner'
6512 stevensc 9
import NotificationAlert from '../components/UI/notification/NotificationAlert'
6738 stevensc 10
import LoaderContainer from '../components/UI/LoaderContainer'
6745 stevensc 11
import { getPermissions } from '../redux/auth/auth.actions'
12
import useLocalStorage from '../hooks/useLocalStorage'
6490 stevensc 13
 
6707 stevensc 14
const Header = lazy(() => import('../components/navbar/Header'))
6601 stevensc 15
const Auth = lazy(() => import('../pages/auth/Auth'))
16
const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))
6707 stevensc 17
const MyConnectionsPage = lazy(() =>
6719 stevensc 18
  import('../pages/connections/MyConnectionsPage')
6707 stevensc 19
)
6724 stevensc 20
const InvitationsReceivedPage = lazy(() =>
21
  import('../pages/connections/InvitationsReceivedPage')
22
)
6719 stevensc 23
const InvitationsSendPage = lazy(() =>
6724 stevensc 24
  import('../pages/connections/InvitationsSendPage')
6719 stevensc 25
)
6725 stevensc 26
const PeopleYouMayKnowPage = lazy(() =>
27
  import('../pages/connections/PeopleYouMayKnowPage')
28
)
29
const PeopleBlockedPage = lazy(() =>
30
  import('../pages/connections/PeopleBlockedPage')
31
)
6738 stevensc 32
const MyProfilesPage = lazy(() => import('../pages/profiles/MyProfilesPage'))
33
const PeopleViewedMyProfilePage = lazy(() =>
34
  import('../pages/profiles/PeopleViewedMyProfilePage')
35
)
36
const SavedJobsPage = lazy(() => import('../pages/jobs/SavedJobsPage'))
37
const AppliedJobsPage = lazy(() => import('../pages/jobs/AppliedJobsPage'))
38
const GroupsRequestsSendPage = lazy(() =>
39
  import('../pages/groups/GroupsRequestsSendPage')
40
)
41
const GroupsRequestsReceivedPage = lazy(() =>
42
  import('../pages/groups/GroupsRequestsReceivedPage')
43
)
44
const JoinedGroupsPage = lazy(() => import('../pages/groups/JoinedGroupsPage'))
45
const MyGroupsPage = lazy(() => import('../pages/groups/MyGroupsPage'))
6490 stevensc 46
 
47
const AppRouter = () => {
6745 stevensc 48
  const { isAuth, defaultNetwork, theme_id } = useSelector(({ auth }) => auth)
6490 stevensc 49
  const dispatch = useDispatch()
50
 
6745 stevensc 51
  useLocalStorage('config', {
52
    isAuth,
53
    defaultNetwork,
54
    theme_id,
55
  })
56
 
6490 stevensc 57
  useEffect(() => {
6745 stevensc 58
    dispatch(getPermissions())
6490 stevensc 59
    dispatch(getLanguage())
60
  }, [])
61
 
62
  return (
63
    <Router>
6724 stevensc 64
      <Suspense fallback={null}>{isAuth && <Header />}</Suspense>
65
 
6707 stevensc 66
      <Suspense
67
        fallback={
6738 stevensc 68
          <LoaderContainer>
6707 stevensc 69
            <Spinner />
6738 stevensc 70
          </LoaderContainer>
6707 stevensc 71
        }
72
      >
73
        <Switch>
6601 stevensc 74
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
75
            <DashboardPage />
76
          </PrivateRoute>
6738 stevensc 77
 
6707 stevensc 78
          <PrivateRoute
79
            exact
80
            path="/connection/my-connections"
81
            isAuthenticated={isAuth}
82
          >
83
            <MyConnectionsPage />
84
          </PrivateRoute>
6719 stevensc 85
          <PrivateRoute
86
            exact
87
            path="/connection/invitations-sent"
88
            isAuthenticated={isAuth}
89
          >
90
            <InvitationsSendPage />
91
          </PrivateRoute>
6724 stevensc 92
          <PrivateRoute
93
            exact
94
            path="/connection/invitations-received"
95
            isAuthenticated={isAuth}
96
          >
97
            <InvitationsReceivedPage />
98
          </PrivateRoute>
6725 stevensc 99
          <PrivateRoute
100
            exact
101
            path="/connection/people-you-may-know"
102
            isAuthenticated={isAuth}
103
          >
104
            <PeopleYouMayKnowPage />
105
          </PrivateRoute>
106
          <PrivateRoute
107
            exact
6726 stevensc 108
            path="/connection/people-blocked"
6725 stevensc 109
            isAuthenticated={isAuth}
110
          >
111
            <PeopleBlockedPage />
112
          </PrivateRoute>
6738 stevensc 113
 
6727 stevensc 114
          <PrivateRoute
115
            exact
116
            path="/profile/my-profiles"
117
            isAuthenticated={isAuth}
118
          >
119
            <MyProfilesPage />
120
          </PrivateRoute>
121
          <PrivateRoute
122
            exact
123
            path="/profile/people-viewed-profile"
124
            isAuthenticated={isAuth}
125
          >
126
            <PeopleViewedMyProfilePage />
127
          </PrivateRoute>
6738 stevensc 128
 
6727 stevensc 129
          <PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}>
130
            <SavedJobsPage />
131
          </PrivateRoute>
132
          <PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}>
6729 stevensc 133
            <AppliedJobsPage />
6727 stevensc 134
          </PrivateRoute>
6601 stevensc 135
 
6738 stevensc 136
          <PrivateRoute
137
            exact
6740 stevensc 138
            path="/group/requests-sent"
6738 stevensc 139
            isAuthenticated={isAuth}
140
          >
141
            <GroupsRequestsSendPage />
142
          </PrivateRoute>
143
          <PrivateRoute
144
            exact
145
            path="/group/invitations-received"
146
            isAuthenticated={isAuth}
147
          >
148
            <GroupsRequestsReceivedPage />
149
          </PrivateRoute>
150
          <PrivateRoute
151
            exact
152
            path="/group/joined-groups"
153
            isAuthenticated={isAuth}
154
          >
155
            <JoinedGroupsPage />
156
          </PrivateRoute>
157
          <PrivateRoute exact path="/group/my-groups" isAuthenticated={isAuth}>
158
            <MyGroupsPage />
159
          </PrivateRoute>
160
 
6601 stevensc 161
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 162
            <Auth />
163
          </PublicRoute>
6707 stevensc 164
        </Switch>
165
      </Suspense>
6512 stevensc 166
 
167
      <NotificationAlert />
6490 stevensc 168
    </Router>
169
  )
170
}
171
 
172
export default AppRouter