Proyectos de Subversion LeadersLinked - SPA

Rev

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