Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7015 | Rev 7114 | 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'
6994 stevensc 3
import { BrowserRouter as Router, Switch } from 'react-router-dom'
6490 stevensc 4
import { getLanguage } from '../../redux/intl/intl.action'
6753 stevensc 5
import { getPermissions } from '../redux/auth/auth.actions'
6490 stevensc 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'
6738 stevensc 11
import LoaderContainer from '../components/UI/LoaderContainer'
6999 stevensc 12
import NotificationsPage from '../pages/notifications/NotificationsPage'
7001 stevensc 13
import SearchPage from '../pages/search/SearchPage'
7015 stevensc 14
import KnowledgeAreaPage from '../pages/knowledge-area/KnowledgeAreaPage'
7062 stevensc 15
import KnowledgeViewPage from '../pages/knowledge-area/KnowledgeViewPage'
6490 stevensc 16
 
6707 stevensc 17
const Header = lazy(() => import('../components/navbar/Header'))
6601 stevensc 18
const Auth = lazy(() => import('../pages/auth/Auth'))
19
const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))
6707 stevensc 20
const MyConnectionsPage = lazy(() =>
6719 stevensc 21
  import('../pages/connections/MyConnectionsPage')
6707 stevensc 22
)
6724 stevensc 23
const InvitationsReceivedPage = lazy(() =>
24
  import('../pages/connections/InvitationsReceivedPage')
25
)
6719 stevensc 26
const InvitationsSendPage = lazy(() =>
6724 stevensc 27
  import('../pages/connections/InvitationsSendPage')
6719 stevensc 28
)
6725 stevensc 29
const PeopleYouMayKnowPage = lazy(() =>
30
  import('../pages/connections/PeopleYouMayKnowPage')
31
)
32
const PeopleBlockedPage = lazy(() =>
33
  import('../pages/connections/PeopleBlockedPage')
34
)
6738 stevensc 35
const MyProfilesPage = lazy(() => import('../pages/profiles/MyProfilesPage'))
36
const PeopleViewedMyProfilePage = lazy(() =>
37
  import('../pages/profiles/PeopleViewedMyProfilePage')
38
)
39
const SavedJobsPage = lazy(() => import('../pages/jobs/SavedJobsPage'))
40
const AppliedJobsPage = lazy(() => import('../pages/jobs/AppliedJobsPage'))
41
const GroupsRequestsSendPage = lazy(() =>
42
  import('../pages/groups/GroupsRequestsSendPage')
43
)
44
const GroupsRequestsReceivedPage = lazy(() =>
45
  import('../pages/groups/GroupsRequestsReceivedPage')
46
)
47
const JoinedGroupsPage = lazy(() => import('../pages/groups/JoinedGroupsPage'))
48
const MyGroupsPage = lazy(() => import('../pages/groups/MyGroupsPage'))
6753 stevensc 49
const MyCompanies = lazy(() => import('../pages/company/MyCompaniesPage'))
50
const FollowingCompaniesPage = lazy(() =>
51
  import('../pages/company/FollowingCompaniesPage')
52
)
53
const CompaniesWhenIWorkPage = lazy(() =>
54
  import('../pages/company/CompaniesWhenIWorkPage')
55
)
56
const CompanyRequestSendPage = lazy(() =>
57
  import('../pages/company/CompanyRequestSendPage')
58
)
59
const CompanyInvitationsReceivedPage = lazy(() =>
60
  import('../pages/company/CompanyInvitationsReceivedPage')
61
)
62
const ProfileViewPage = lazy(() => import('../pages/profiles/ProfileViewPage'))
6805 stevensc 63
const ProfileEditPage = lazy(() => import('../pages/profiles/ProfileEditPage'))
6862 stevensc 64
const CompanyViewPage = lazy(() => import('../pages/company/CompanyViewPage'))
65
const GroupViewPage = lazy(() => import('../pages/groups/GroupViewPage'))
6894 stevensc 66
const GroupEditPage = lazy(() => import('../pages/groups/GroupEditPage'))
6920 stevensc 67
const ChatPage = lazy(() => import('../pages/chat/ChatPage'))
6957 stevensc 68
const InmailPage = lazy(() => import('../pages/inmail/InmailPage'))
6993 stevensc 69
const MarketPlacePage = lazy(() =>
70
  import('../pages/marketplace/MarketplacePage')
71
)
6490 stevensc 72
 
73
const AppRouter = () => {
6753 stevensc 74
  const { isAuth, theme_id } = useSelector(({ auth }) => auth)
6490 stevensc 75
  const dispatch = useDispatch()
76
 
77
  useEffect(() => {
6745 stevensc 78
    dispatch(getPermissions())
6490 stevensc 79
    dispatch(getLanguage())
80
  }, [])
81
 
82
  return (
83
    <Router>
6753 stevensc 84
      <Suspense fallback={null}>
85
        {isAuth && <Header theme={theme_id} />}
86
      </Suspense>
6724 stevensc 87
 
6707 stevensc 88
      <Suspense
89
        fallback={
6738 stevensc 90
          <LoaderContainer>
6707 stevensc 91
            <Spinner />
6738 stevensc 92
          </LoaderContainer>
6707 stevensc 93
        }
94
      >
95
        <Switch>
6601 stevensc 96
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
97
            <DashboardPage />
98
          </PrivateRoute>
6738 stevensc 99
 
6994 stevensc 100
          <PrivateRoute
101
            exact
102
            path="/connection/my-connections"
103
            isAuthenticated={isAuth}
104
          >
105
            <MyConnectionsPage />
6707 stevensc 106
          </PrivateRoute>
6719 stevensc 107
          <PrivateRoute
108
            exact
6994 stevensc 109
            path="/connection/invitations-sent"
110
            isAuthenticated={isAuth}
111
          >
112
            <InvitationsSendPage />
113
          </PrivateRoute>
114
          <PrivateRoute
115
            exact
6724 stevensc 116
            path="/connection/invitations-received"
117
            isAuthenticated={isAuth}
118
          >
119
            <InvitationsReceivedPage />
120
          </PrivateRoute>
6725 stevensc 121
          <PrivateRoute
122
            exact
123
            path="/connection/people-you-may-know"
124
            isAuthenticated={isAuth}
125
          >
126
            <PeopleYouMayKnowPage />
127
          </PrivateRoute>
128
          <PrivateRoute
129
            exact
6726 stevensc 130
            path="/connection/people-blocked"
6725 stevensc 131
            isAuthenticated={isAuth}
132
          >
133
            <PeopleBlockedPage />
134
          </PrivateRoute>
6738 stevensc 135
 
6727 stevensc 136
          <PrivateRoute
137
            exact
138
            path="/profile/my-profiles"
139
            isAuthenticated={isAuth}
140
          >
141
            <MyProfilesPage />
142
          </PrivateRoute>
143
          <PrivateRoute
144
            exact
145
            path="/profile/people-viewed-profile"
146
            isAuthenticated={isAuth}
147
          >
148
            <PeopleViewedMyProfilePage />
149
          </PrivateRoute>
6862 stevensc 150
          <PrivateRoute path="/profile/view/:uuid" isAuthenticated={isAuth}>
151
            <ProfileViewPage />
152
          </PrivateRoute>
153
          <PrivateRoute
154
            path="/profile/my-profiles/edit/:uuid"
155
            isAuthenticated={isAuth}
156
          >
157
            <ProfileEditPage />
158
          </PrivateRoute>
6738 stevensc 159
 
6727 stevensc 160
          <PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}>
161
            <SavedJobsPage />
162
          </PrivateRoute>
163
          <PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}>
6729 stevensc 164
            <AppliedJobsPage />
6727 stevensc 165
          </PrivateRoute>
6601 stevensc 166
 
6738 stevensc 167
          <PrivateRoute
168
            exact
6740 stevensc 169
            path="/group/requests-sent"
6738 stevensc 170
            isAuthenticated={isAuth}
171
          >
172
            <GroupsRequestsSendPage />
173
          </PrivateRoute>
174
          <PrivateRoute
175
            exact
176
            path="/group/invitations-received"
177
            isAuthenticated={isAuth}
178
          >
179
            <GroupsRequestsReceivedPage />
180
          </PrivateRoute>
181
          <PrivateRoute
182
            exact
183
            path="/group/joined-groups"
184
            isAuthenticated={isAuth}
185
          >
186
            <JoinedGroupsPage />
187
          </PrivateRoute>
188
          <PrivateRoute exact path="/group/my-groups" isAuthenticated={isAuth}>
189
            <MyGroupsPage />
190
          </PrivateRoute>
6862 stevensc 191
          <PrivateRoute path="/group/view/:uuid" isAuthenticated={isAuth}>
192
            <GroupViewPage />
193
          </PrivateRoute>
6894 stevensc 194
          <PrivateRoute
6895 stevensc 195
            path="/group/my-groups/edit/:uuid"
6894 stevensc 196
            isAuthenticated={isAuth}
197
          >
198
            <GroupEditPage />
199
          </PrivateRoute>
6738 stevensc 200
 
6753 stevensc 201
          <PrivateRoute
202
            exact
203
            path="/company/my-companies"
204
            isAuthenticated={isAuth}
205
          >
206
            <MyCompanies />
207
          </PrivateRoute>
208
          <PrivateRoute
209
            exact
210
            path="/company/following-companies"
211
            isAuthenticated={isAuth}
212
          >
213
            <FollowingCompaniesPage />
214
          </PrivateRoute>
215
          <PrivateRoute
216
            exact
217
            path="/company/i-work-with"
218
            isAuthenticated={isAuth}
219
          >
220
            <CompaniesWhenIWorkPage />
221
          </PrivateRoute>
222
          <PrivateRoute
223
            exact
224
            path="/company/requests-sent"
225
            isAuthenticated={isAuth}
226
          >
227
            <CompanyRequestSendPage />
228
          </PrivateRoute>
229
          <PrivateRoute
230
            exact
231
            path="/company/requests-sent"
232
            isAuthenticated={isAuth}
233
          >
234
            <CompanyRequestSendPage />
235
          </PrivateRoute>
236
          <PrivateRoute
237
            exact
238
            path="/company/invitations-received"
239
            isAuthenticated={isAuth}
240
          >
241
            <CompanyInvitationsReceivedPage />
242
          </PrivateRoute>
6830 stevensc 243
          <PrivateRoute path="/company/view/:uuid" isAuthenticated={isAuth}>
244
            <CompanyViewPage />
245
          </PrivateRoute>
246
 
6911 stevensc 247
          <PrivateRoute path="/chat" isAuthenticated={isAuth}>
248
            <ChatPage />
249
          </PrivateRoute>
6983 stevensc 250
          <PrivateRoute path="/inmail/:uuid" isAuthenticated={isAuth}>
6970 stevensc 251
            <InmailPage />
252
          </PrivateRoute>
6983 stevensc 253
          <PrivateRoute path="/inmail" isAuthenticated={isAuth}>
6947 stevensc 254
            <InmailPage />
255
          </PrivateRoute>
6911 stevensc 256
 
6993 stevensc 257
          <PrivateRoute path="/marketplace" isAuthenticated={isAuth}>
258
            <MarketPlacePage />
259
          </PrivateRoute>
6999 stevensc 260
          <PrivateRoute path="/notifications" isAuthenticated={isAuth}>
261
            <NotificationsPage />
262
          </PrivateRoute>
7000 stevensc 263
          <PrivateRoute path="/search" isAuthenticated={isAuth}>
7001 stevensc 264
            <SearchPage />
7000 stevensc 265
          </PrivateRoute>
6993 stevensc 266
 
7062 stevensc 267
          <PrivateRoute
268
            path="/knowledge-area/view/:uuid"
269
            isAuthenticated={isAuth}
270
          >
271
            <KnowledgeViewPage />
272
          </PrivateRoute>
7015 stevensc 273
          <PrivateRoute path="/knowledge-area" isAuthenticated={isAuth}>
274
            <KnowledgeAreaPage />
275
          </PrivateRoute>
276
 
6601 stevensc 277
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 278
            <Auth />
279
          </PublicRoute>
6707 stevensc 280
        </Switch>
281
      </Suspense>
6512 stevensc 282
 
283
      <NotificationAlert />
6490 stevensc 284
    </Router>
285
  )
286
}
287
 
288
export default AppRouter