Proyectos de Subversion LeadersLinked - SPA

Rev

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