Proyectos de Subversion LeadersLinked - SPA

Rev

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