Proyectos de Subversion LeadersLinked - SPA

Rev

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