Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
2611 stevensc 1
import React, { lazy, Suspense } from 'react'
2632 stevensc 2
import { Routes, Route, Navigate, Outlet } from 'react-router-dom'
2611 stevensc 3
 
2632 stevensc 4
/* Components */
2611 stevensc 5
import AuthRoute from './auth-routes'
6
import PrivateRoutes from './private-routes'
2914 stevensc 7
import Spinner from '@components/UI/Spinner'
2611 stevensc 8
 
2629 stevensc 9
/* Providers */
2630 stevensc 10
import GoalsProvider from '@providers/goals'
2633 stevensc 11
import ValuesProvider from '@providers/values'
2630 stevensc 12
import HabitsProvider from '@providers/habits'
2633 stevensc 13
import PurposesProvider from '@providers/purposes'
2630 stevensc 14
import ParadigmsProvider from '@providers/paradigms'
2629 stevensc 15
 
2626 stevensc 16
/* Layouts */
2914 stevensc 17
import RootLayout from '@layouts/root'
18
const InmailLayout = lazy(() => import('@layouts/inmail/inmail-layout'))
2632 stevensc 19
const AuthLayout = lazy(() => import('@layouts/auth/auth-layout'))
20
const HabitsLayout = lazy(() => import('@layouts/habits/habits-layout'))
21
const MicrolearningLayout = lazy(() =>
22
  import('@layouts/micro-learning/micro-learning-layout')
23
)
2620 stevensc 24
 
2626 stevensc 25
/* Pages */
2914 stevensc 26
const InmailPage = lazy(() => import('@pages/inmail/inmail-page'))
27
const MessageViewPage = lazy(() => import('@pages/inmail/message-view-page'))
2781 stevensc 28
const Browsers = lazy(() => import('@pages/account-settings/browsers'))
29
const BasicSettings = lazy(() =>
30
  import('@pages/account-settings/basic-settings')
31
)
32
const ChangeImage = lazy(() => import('@pages/account-settings/change-image'))
33
const ChangePassword = lazy(() =>
34
  import('@pages/account-settings/change-password')
35
)
36
const Devices = lazy(() => import('@pages/account-settings/devices'))
37
const Ips = lazy(() => import('@pages/account-settings/ips'))
38
const Location = lazy(() => import('@pages/account-settings/location'))
39
const Notifications = lazy(() =>
40
  import('@pages/account-settings/notifications')
41
)
42
const Privacy = lazy(() => import('@pages/account-settings/privacy'))
43
const Transactions = lazy(() => import('@pages/account-settings/transactions'))
44
const CloseAccount = lazy(() => import('@pages/account-settings/close-account'))
2630 stevensc 45
const Login = lazy(() => import('@app/pages/auth/login'))
46
const Signup = lazy(() => import('@app/pages/auth/signup'))
47
// const Navigation = lazy(() => import('@pages/auth/navigation'))
48
const ForgotPassword = lazy(() => import('@pages/auth/forgot-password'))
49
const ActiveAccount = lazy(() => import('@pages/auth/active-account'))
50
const ResetPassword = lazy(() => import('@pages/auth/reset-password'))
51
const ValuesPage = lazy(() => import('@pages/habits/values-page'))
52
const PurposesPage = lazy(() => import('@pages/habits/purposes-page'))
53
const HabitsPage = lazy(() => import('@pages/habits/habits-page'))
54
const ParadigmsPage = lazy(() => import('@pages/habits/paradigms-page'))
55
const GoalsPage = lazy(() => import('@pages/habits/goals-page'))
2611 stevensc 56
const AbuseReportPage = lazy(() =>
2630 stevensc 57
  import('@pages/abuse-report/abuse-repor-page')
2611 stevensc 58
)
59
const AbuseReportViewPage = lazy(() =>
2630 stevensc 60
  import('@pages/abuse-report/abuse-report-view-page')
2611 stevensc 61
)
2630 stevensc 62
const ShorterPostPage = lazy(() => import('@pages/shorter/shorter-post-page'))
2611 stevensc 63
const TermsAndConditionsPage = lazy(() =>
2630 stevensc 64
  import('@pages/terms-and-conditions/TermsAndConditionsPage')
2611 stevensc 65
)
66
const PrivacyPolicyPage = lazy(() =>
2630 stevensc 67
  import('@pages/privacy-policy/PrivacyPolicy')
2611 stevensc 68
)
2630 stevensc 69
const CookiesPage = lazy(() => import('@pages/cookies/CookiesPage'))
2611 stevensc 70
const ProfessionalismPolicy = lazy(() =>
2630 stevensc 71
  import('@pages/professionalism-policy/ProfessionalismPolicy')
2611 stevensc 72
)
2781 stevensc 73
const AccountSettingsLayout = lazy(() => import('@layouts/account-settings'))
2674 stevensc 74
const DashboardPage = lazy(() => import('@pages/dashboard/dashboard-page'))
2611 stevensc 75
const MyConnectionsPage = lazy(() =>
2630 stevensc 76
  import('@pages/connections/MyConnectionsPage')
2611 stevensc 77
)
78
const InvitationsReceivedPage = lazy(() =>
2630 stevensc 79
  import('@pages/connections/InvitationsReceivedPage')
2611 stevensc 80
)
81
const InvitationsSendPage = lazy(() =>
2630 stevensc 82
  import('@pages/connections/InvitationsSendPage')
2611 stevensc 83
)
84
const PeopleYouMayKnowPage = lazy(() =>
2630 stevensc 85
  import('@pages/connections/PeopleYouMayKnowPage')
2611 stevensc 86
)
87
const PeopleBlockedPage = lazy(() =>
2630 stevensc 88
  import('@pages/connections/PeopleBlockedPage')
2611 stevensc 89
)
2630 stevensc 90
const MyProfilesPage = lazy(() => import('@pages/profiles/MyProfilesPage'))
2611 stevensc 91
const PeopleViewedMyProfilePage = lazy(() =>
2630 stevensc 92
  import('@pages/profiles/PeopleViewedMyProfilePage')
2611 stevensc 93
)
2630 stevensc 94
const SavedJobsPage = lazy(() => import('@pages/jobs/SavedJobsPage'))
95
const AppliedJobsPage = lazy(() => import('@pages/jobs/AppliedJobsPage'))
2611 stevensc 96
const GroupsRequestsSendPage = lazy(() =>
2630 stevensc 97
  import('@pages/groups/GroupsRequestsSendPage')
2611 stevensc 98
)
99
const GroupsRequestsReceivedPage = lazy(() =>
2630 stevensc 100
  import('@pages/groups/GroupsRequestsReceivedPage')
2611 stevensc 101
)
2630 stevensc 102
const JoinedGroupsPage = lazy(() => import('@pages/groups/JoinedGroupsPage'))
103
const MyGroupsPage = lazy(() => import('@pages/groups/MyGroupsPage'))
104
const MyCompanies = lazy(() => import('@pages/company/MyCompaniesPage'))
2611 stevensc 105
const FollowingCompaniesPage = lazy(() =>
2864 stevensc 106
  import('@pages/company/CompaniesIFollowPage')
2611 stevensc 107
)
108
const CompaniesWhenIWorkPage = lazy(() =>
2630 stevensc 109
  import('@pages/company/CompaniesWhenIWorkPage')
2611 stevensc 110
)
111
const CompanyRequestSendPage = lazy(() =>
2630 stevensc 112
  import('@pages/company/CompanyRequestSendPage')
2611 stevensc 113
)
114
const CompanyInvitationsReceivedPage = lazy(() =>
2630 stevensc 115
  import('@pages/company/CompanyInvitationsReceivedPage')
2611 stevensc 116
)
2630 stevensc 117
const ProfileViewPage = lazy(() => import('@pages/profiles/ProfileViewPage'))
118
const ProfileEditPage = lazy(() => import('@pages/profiles/ProfileEditPage'))
119
const CompanyViewPage = lazy(() => import('@pages/company/CompanyViewPage'))
120
const GroupViewPage = lazy(() => import('@pages/groups/GroupViewPage'))
121
const GroupEditPage = lazy(() => import('@pages/groups/GroupEditPage'))
2611 stevensc 122
 
2630 stevensc 123
const MarketPlacePage = lazy(() => import('@pages/marketplace/MarketplacePage'))
2611 stevensc 124
const NotificationsPage = lazy(() =>
2630 stevensc 125
  import('@pages/notifications/NotificationsPage')
2611 stevensc 126
)
2630 stevensc 127
const SearchPage = lazy(() => import('@pages/search/SearchPage'))
2611 stevensc 128
const KnowledgeAreaPage = lazy(() =>
2630 stevensc 129
  import('@pages/knowledge-area/KnowledgeAreaPage')
2611 stevensc 130
)
131
const KnowledgeViewPage = lazy(() =>
2630 stevensc 132
  import('@pages/knowledge-area/KnowledgeViewPage')
2611 stevensc 133
)
2630 stevensc 134
const PostViewPage = lazy(() => import('@pages/posts/PostViewPage'))
135
const MyCoachPage = lazy(() => import('@pages/my-coach/MyCoachPage'))
136
const MyCoachViewPage = lazy(() => import('@pages/my-coach/MyCoachViewPage'))
137
const JobViewPage = lazy(() => import('@pages/jobs/JobView'))
138
const CalendarPage = lazy(() => import('@pages/calendar/CalendarPage'))
139
const ImpersonatePage = lazy(() => import('@pages/impersonate/InpersonatePage'))
2632 stevensc 140
const CapsulesPage = lazy(() => import('@pages/micro-learning/CapsulesPage'))
141
const CapsuleDetailsPage = lazy(() =>
142
  import('@pages/micro-learning/CapsuleInfoPage')
143
)
144
const SlidesPage = lazy(() => import('@pages/micro-learning/SlideViewPage'))
145
const ProgressPage = lazy(() => import('@pages/micro-learning/ProgressPage'))
146
const CompaniesPage = lazy(() => import('@pages/micro-learning/CompaniesPage'))
147
const CapsuleSlidesPage = lazy(() =>
148
  import('@pages/micro-learning/CapsuleViewPage')
149
)
150
const TimelinePage = lazy(() => import('@pages/micro-learning/TimelinePage'))
151
const ProfilePage = lazy(() => import('@pages/micro-learning/ProfilePage'))
152
const TopicsPage = lazy(() => import('@pages/micro-learning/TopicsPage'))
153
const TopicsViewPage = lazy(() => import('@pages/micro-learning/TopicViewPage'))
2611 stevensc 154
 
155
export default function AppRoutes() {
156
  return (
2617 stevensc 157
    <Suspense fallback={<Spinner />}>
158
      <Routes>
2803 stevensc 159
        <Route element={<RootLayout />}>
160
          {/* Public routes */}
161
          <Route path='/shorter/:id' element={<ShorterPostPage />} />
162
          <Route
163
            path='/terms-and-conditions'
164
            element={<TermsAndConditionsPage />}
165
          />
166
          <Route path='/privacy-policy' element={<PrivacyPolicyPage />} />
167
          <Route
168
            path='/professionalism-policy'
169
            element={<ProfessionalismPolicy />}
170
          />
171
          <Route path='/cookies' element={<CookiesPage />} />
2617 stevensc 172
 
2803 stevensc 173
          {/* Authentication routes */}
174
          <Route path='/' element={<AuthRoute />}>
175
            <Route element={<AuthLayout />}>
176
              <Route index element={<Navigate to='signin' />} />
177
              <Route path='signin' element={<Login />} />
178
              <Route path='signup' element={<Signup />} />
179
              <Route path='forgot-password' element={<ForgotPassword />} />
180
              <Route path='reset-password/:uuid' element={<ResetPassword />} />
181
              <Route
182
                path='activate-account/:uuid'
183
                element={<ActiveAccount />}
184
              />
185
            </Route>
2620 stevensc 186
          </Route>
2617 stevensc 187
 
2803 stevensc 188
          {/* Private routes */}
189
          <Route element={<PrivateRoutes />}>
190
            <Route path='/habits/*' element={<HabitsLayout />}>
191
              <Route
192
                path='paradigms'
193
                element={
194
                  <ParadigmsProvider>
195
                    <ParadigmsPage />
196
                  </ParadigmsProvider>
197
                }
198
              />
199
              <Route
200
                path='values'
201
                element={
202
                  <ValuesProvider>
203
                    <ValuesPage />
204
                  </ValuesProvider>
205
                }
206
              />
207
              <Route
208
                path='purposes'
209
                element={
210
                  <PurposesProvider>
211
                    <PurposesPage />
212
                  </PurposesProvider>
213
                }
214
              />
215
              <Route
216
                path='goals'
217
                element={
218
                  <GoalsProvider>
219
                    <GoalsPage />
220
                  </GoalsProvider>
221
                }
222
              />
223
              <Route
224
                index
225
                element={
226
                  <HabitsProvider>
227
                    <HabitsPage />
228
                  </HabitsProvider>
229
                }
230
              />
231
            </Route>
2630 stevensc 232
 
2803 stevensc 233
            <Route path='abuse-report'>
234
              <Route index element={<AbuseReportPage />} />
235
              <Route path='view/:id' element={<AbuseReportViewPage />} />
236
            </Route>
2630 stevensc 237
 
2803 stevensc 238
            <Route path='/dashboard'>
239
              <Route index element={<DashboardPage />} />
240
              <Route path='feed/:id' element={<DashboardPage />} />
241
            </Route>
2630 stevensc 242
 
2803 stevensc 243
            <Route path='/connection'>
244
              <Route index element={<Navigate to='my-connections' />} />
245
              <Route path='my-connections' element={<MyConnectionsPage />} />
246
              <Route
247
                path='invitations-sent'
248
                element={<InvitationsSendPage />}
249
              />
250
              <Route
251
                path='invitations-received'
252
                element={<InvitationsReceivedPage />}
253
              />
254
              <Route
255
                path='people-you-may-know'
256
                element={<PeopleYouMayKnowPage />}
257
              />
258
              <Route path='people-blocked' element={<PeopleBlockedPage />} />
259
            </Route>
2630 stevensc 260
 
2803 stevensc 261
            <Route path='/profile'>
262
              <Route index element={<Navigate to='my-profiles' />} />
263
              <Route path='view/:uuid' element={<ProfileViewPage />} />
264
              <Route
265
                path='people-viewed-profile'
266
                element={<PeopleViewedMyProfilePage />}
267
              />
2866 stevensc 268
              <Route path='my-profiles'>
269
                <Route index element={<MyProfilesPage />} />
2803 stevensc 270
                <Route path='edit/:uuid' element={<ProfileEditPage />} />
271
              </Route>
2630 stevensc 272
            </Route>
273
 
2803 stevensc 274
            <Route path='/job'>
275
              <Route index element={<Navigate to='saved-jobs' />} />
276
              <Route path='view/:uuid' element={<JobViewPage />} />
277
              <Route path='saved-jobs' element={<SavedJobsPage />} />
278
              <Route path='applied-jobs' element={<AppliedJobsPage />} />\
279
            </Route>
2630 stevensc 280
 
2803 stevensc 281
            <Route path='/group'>
282
              <Route index element={<Navigate to='requests-sent' />} />
283
              <Route
284
                path='requests-sent'
285
                element={<GroupsRequestsSendPage />}
286
              />
287
              <Route
288
                path='invitations-received'
289
                element={<GroupsRequestsReceivedPage />}
290
              />
291
              <Route path='joined-groups' element={<JoinedGroupsPage />} />
292
              <Route path='view/:uuid' element={<GroupViewPage />} />
2877 stevensc 293
              <Route path='my-groups'>
294
                <Route index element={<MyGroupsPage />} />
2803 stevensc 295
                <Route path='edit/:uuid' element={<GroupEditPage />} />
296
              </Route>
2630 stevensc 297
            </Route>
298
 
2803 stevensc 299
            <Route path='/company'>
300
              <Route index element={<Navigate to='my-companies' />} />
301
              <Route path='my-companies' element={<MyCompanies />} />
302
              <Route
303
                path='following-companies'
304
                element={<FollowingCompaniesPage />}
305
              />
306
              <Route path='i-work-with' element={<CompaniesWhenIWorkPage />} />
307
              <Route
308
                path='requests-sent'
309
                element={<CompanyRequestSendPage />}
310
              />
311
              <Route
312
                path='requests-sent'
313
                element={<CompanyRequestSendPage />}
314
              />
315
              <Route
316
                path='invitations-received'
317
                element={<CompanyInvitationsReceivedPage />}
318
              />
319
              <Route path='view/:uuid' element={<CompanyViewPage />} />
320
            </Route>
2630 stevensc 321
 
2877 stevensc 322
            <Route path='/knowledge-area'>
323
              <Route index element={<KnowledgeAreaPage />} />
2803 stevensc 324
              <Route path='view/:uuid' element={<KnowledgeViewPage />} />
325
            </Route>
2630 stevensc 326
 
2877 stevensc 327
            <Route path='/my-coach'>
328
              <Route index element={<MyCoachPage />} />
2803 stevensc 329
              <Route
330
                path='questions/view/:uuid'
331
                element={<MyCoachViewPage />}
332
              />
2632 stevensc 333
            </Route>
2877 stevensc 334
 
2803 stevensc 335
            <Route
336
              path='/microlearning'
337
              element={
338
                <MicrolearningLayout>
2914 stevensc 339
                  <Outlet />
2803 stevensc 340
                </MicrolearningLayout>
341
              }
342
            >
343
              <Route index element={<CapsulesPage />} />
344
              <Route path='topics'>
345
                <Route index element={<TopicsPage />} />
346
                <Route path=':topicId/capsules' element={<TopicsViewPage />} />
347
              </Route>
348
              <Route path='capsules'>
349
                <Route path=':capsuleId/*' element={<CapsuleDetailsPage />} />
350
                <Route
351
                  path=':capsuleId/slides'
352
                  element={<CapsuleSlidesPage />}
353
                />
354
              </Route>
355
              <Route path='slides/:uuid' element={<SlidesPage />} />
356
              <Route path='companies'>
357
                <Route index element={<CompaniesPage />} />
358
                <Route path=':uuid' element={<ProgressPage />} />
359
              </Route>
360
              <Route path='timeline' element={<TimelinePage />} />
361
              <Route path='profile' element={<ProfilePage />} />
2632 stevensc 362
            </Route>
2803 stevensc 363
 
364
            <Route path='/inmail/*' element={<InmailLayout />}>
2827 stevensc 365
              <Route index element={<InmailPage />} />
2803 stevensc 366
              <Route path=':uuid' element={<MessageViewPage />} />
2632 stevensc 367
            </Route>
2630 stevensc 368
 
2803 stevensc 369
            <Route path='/account-settings' element={<AccountSettingsLayout />}>
370
              <Route index element={<BasicSettings />} />
371
              <Route path='notifications' element={<Notifications />} />
372
              <Route path='change-password' element={<ChangePassword />} />
373
              <Route path='change-image' element={<ChangeImage />} />
374
              <Route path='location' element={<Location />} />
375
              <Route path='privacy' element={<Privacy />} />
376
              <Route path='browsers' element={<Browsers />} />
377
              <Route path='ips' element={<Ips />} />
378
              <Route path='devices' element={<Devices />} />
379
              <Route path='close-account' element={<CloseAccount />} />
380
              <Route path='transactions' element={<Transactions />} />
381
            </Route>
382
            <Route path='/marketplace' element={<MarketPlacePage />} />
383
            <Route path='/notifications' element={<NotificationsPage />} />
384
            <Route path='/search/entity/:category' element={<SearchPage />} />
385
            <Route path='/calendar' element={<CalendarPage />} />
386
            <Route path='/signin/impersonate' element={<ImpersonatePage />} />
387
            <Route path='/post/:uuid' element={<PostViewPage />} />
2698 stevensc 388
          </Route>
2617 stevensc 389
        </Route>
390
      </Routes>
391
    </Suspense>
2611 stevensc 392
  )
393
}