Proyectos de Subversion LeadersLinked - SPA

Rev

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