Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3066 | Rev 3118 | 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 ParadigmsProvider from '@providers/paradigms'
2629 stevensc 13
 
2626 stevensc 14
/* Layouts */
2914 stevensc 15
import RootLayout from '@layouts/root'
2960 stevensc 16
import AppsNavigation from '@pages/apps-navigation/AppsNavigation'
2972 stevensc 17
import CreateHabitPage from '@pages/habits/create'
2914 stevensc 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'))
3114 stevensc 52
const PurposesPage = lazy(() => import('@layouts/habits/purposes-layout'))
2630 stevensc 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'))
3066 stevensc 120
const GroupViewPage = lazy(() => import('@pages/groups/GroupPage'))
2630 stevensc 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
              />
3114 stevensc 207
              <Route path='purposes' element={<PurposesPage />} />
2803 stevensc 208
              <Route
209
                path='goals'
210
                element={
211
                  <GoalsProvider>
212
                    <GoalsPage />
213
                  </GoalsProvider>
214
                }
215
              />
2973 stevensc 216
              <Route index element={<HabitsPage />} />
217
              <Route path='create' element={<CreateHabitPage />} />
2803 stevensc 218
            </Route>
2630 stevensc 219
 
2803 stevensc 220
            <Route path='abuse-report'>
221
              <Route index element={<AbuseReportPage />} />
222
              <Route path='view/:id' element={<AbuseReportViewPage />} />
223
            </Route>
2630 stevensc 224
 
2803 stevensc 225
            <Route path='/dashboard'>
226
              <Route index element={<DashboardPage />} />
227
              <Route path='feed/:id' element={<DashboardPage />} />
228
            </Route>
2630 stevensc 229
 
2803 stevensc 230
            <Route path='/connection'>
231
              <Route index element={<Navigate to='my-connections' />} />
232
              <Route path='my-connections' element={<MyConnectionsPage />} />
233
              <Route
234
                path='invitations-sent'
235
                element={<InvitationsSendPage />}
236
              />
237
              <Route
238
                path='invitations-received'
239
                element={<InvitationsReceivedPage />}
240
              />
241
              <Route
242
                path='people-you-may-know'
243
                element={<PeopleYouMayKnowPage />}
244
              />
245
              <Route path='people-blocked' element={<PeopleBlockedPage />} />
246
            </Route>
2630 stevensc 247
 
2803 stevensc 248
            <Route path='/profile'>
249
              <Route index element={<Navigate to='my-profiles' />} />
250
              <Route path='view/:uuid' element={<ProfileViewPage />} />
251
              <Route
252
                path='people-viewed-profile'
253
                element={<PeopleViewedMyProfilePage />}
254
              />
2866 stevensc 255
              <Route path='my-profiles'>
256
                <Route index element={<MyProfilesPage />} />
2803 stevensc 257
                <Route path='edit/:uuid' element={<ProfileEditPage />} />
258
              </Route>
2630 stevensc 259
            </Route>
260
 
2803 stevensc 261
            <Route path='/job'>
262
              <Route index element={<Navigate to='saved-jobs' />} />
263
              <Route path='view/:uuid' element={<JobViewPage />} />
264
              <Route path='saved-jobs' element={<SavedJobsPage />} />
265
              <Route path='applied-jobs' element={<AppliedJobsPage />} />\
266
            </Route>
2630 stevensc 267
 
2803 stevensc 268
            <Route path='/group'>
269
              <Route index element={<Navigate to='requests-sent' />} />
270
              <Route
271
                path='requests-sent'
272
                element={<GroupsRequestsSendPage />}
273
              />
274
              <Route
275
                path='invitations-received'
276
                element={<GroupsRequestsReceivedPage />}
277
              />
278
              <Route path='joined-groups' element={<JoinedGroupsPage />} />
279
              <Route path='view/:uuid' element={<GroupViewPage />} />
2877 stevensc 280
              <Route path='my-groups'>
281
                <Route index element={<MyGroupsPage />} />
2803 stevensc 282
                <Route path='edit/:uuid' element={<GroupEditPage />} />
283
              </Route>
2630 stevensc 284
            </Route>
285
 
2803 stevensc 286
            <Route path='/company'>
287
              <Route index element={<Navigate to='my-companies' />} />
288
              <Route path='my-companies' element={<MyCompanies />} />
289
              <Route
290
                path='following-companies'
291
                element={<FollowingCompaniesPage />}
292
              />
293
              <Route path='i-work-with' element={<CompaniesWhenIWorkPage />} />
294
              <Route
295
                path='requests-sent'
296
                element={<CompanyRequestSendPage />}
297
              />
298
              <Route
299
                path='requests-sent'
300
                element={<CompanyRequestSendPage />}
301
              />
302
              <Route
303
                path='invitations-received'
304
                element={<CompanyInvitationsReceivedPage />}
305
              />
306
              <Route path='view/:uuid' element={<CompanyViewPage />} />
307
            </Route>
2630 stevensc 308
 
2877 stevensc 309
            <Route path='/knowledge-area'>
310
              <Route index element={<KnowledgeAreaPage />} />
2803 stevensc 311
              <Route path='view/:uuid' element={<KnowledgeViewPage />} />
312
            </Route>
2630 stevensc 313
 
2877 stevensc 314
            <Route path='/my-coach'>
315
              <Route index element={<MyCoachPage />} />
2803 stevensc 316
              <Route
317
                path='questions/view/:uuid'
318
                element={<MyCoachViewPage />}
319
              />
2632 stevensc 320
            </Route>
2877 stevensc 321
 
2803 stevensc 322
            <Route
323
              path='/microlearning'
324
              element={
325
                <MicrolearningLayout>
2914 stevensc 326
                  <Outlet />
2803 stevensc 327
                </MicrolearningLayout>
328
              }
329
            >
330
              <Route index element={<CapsulesPage />} />
3047 stevensc 331
 
2803 stevensc 332
              <Route path='topics'>
333
                <Route index element={<TopicsPage />} />
334
                <Route path=':topicId/capsules' element={<TopicsViewPage />} />
335
              </Route>
3047 stevensc 336
 
2803 stevensc 337
              <Route path='capsules'>
338
                <Route path=':capsuleId/*' element={<CapsuleDetailsPage />} />
339
                <Route
340
                  path=':capsuleId/slides'
341
                  element={<CapsuleSlidesPage />}
342
                />
343
              </Route>
3047 stevensc 344
 
2803 stevensc 345
              <Route path='slides/:uuid' element={<SlidesPage />} />
346
              <Route path='companies'>
347
                <Route index element={<CompaniesPage />} />
348
                <Route path=':uuid' element={<ProgressPage />} />
349
              </Route>
350
              <Route path='timeline' element={<TimelinePage />} />
351
              <Route path='profile' element={<ProfilePage />} />
2632 stevensc 352
            </Route>
2803 stevensc 353
 
354
            <Route path='/inmail/*' element={<InmailLayout />}>
2827 stevensc 355
              <Route index element={<InmailPage />} />
2803 stevensc 356
              <Route path=':uuid' element={<MessageViewPage />} />
2632 stevensc 357
            </Route>
2630 stevensc 358
 
2803 stevensc 359
            <Route path='/account-settings' element={<AccountSettingsLayout />}>
360
              <Route index element={<BasicSettings />} />
361
              <Route path='notifications' element={<Notifications />} />
362
              <Route path='change-password' element={<ChangePassword />} />
363
              <Route path='change-image' element={<ChangeImage />} />
364
              <Route path='location' element={<Location />} />
365
              <Route path='privacy' element={<Privacy />} />
366
              <Route path='browsers' element={<Browsers />} />
367
              <Route path='ips' element={<Ips />} />
368
              <Route path='devices' element={<Devices />} />
369
              <Route path='close-account' element={<CloseAccount />} />
370
              <Route path='transactions' element={<Transactions />} />
371
            </Route>
372
            <Route path='/marketplace' element={<MarketPlacePage />} />
373
            <Route path='/notifications' element={<NotificationsPage />} />
374
            <Route path='/search/entity/:category' element={<SearchPage />} />
375
            <Route path='/calendar' element={<CalendarPage />} />
376
            <Route path='/signin/impersonate' element={<ImpersonatePage />} />
377
            <Route path='/post/:uuid' element={<PostViewPage />} />
2960 stevensc 378
            <Route path='/apps-navigation' element={<AppsNavigation />} />
2698 stevensc 379
          </Route>
2617 stevensc 380
        </Route>
381
      </Routes>
382
    </Suspense>
2611 stevensc 383
  )
384
}