Proyectos de Subversion LeadersLinked - SPA

Rev

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