Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3736 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 stevensc 1
import React, { lazy, Suspense } from 'react';
2
import { Routes, Route, Navigate } from 'react-router-dom';
3
 
4
/* Components */
5
import AuthRoute from './auth-routes';
6
import PrivateRoutes from './private-routes';
7
import Spinner from '@components/UI/Spinner';
8
 
9
/* Layouts */
10
import RootLayout from '@layouts/root';
11
import AppsNavigation from '@pages/apps-navigation/AppsNavigation';
12
 
13
import PrivateRoutesLayout from '@layouts/private-routes';
14
 
15
const HabitsRoutes = lazy(() => import('./habits/routes'));
16
 
17
/* Modules */
18
const KnowledgesRoutes = lazy(() => import('@knowledges/routes/KnowledgesRoutes'));
19
const MicrolearningRoutes = lazy(() => import('@microlearning/routes/MicrolearningRoutes'));
20
const MarketplaceRoutes = lazy(() => import('@marketplace/routes/MarketplaceRoutes'));
21
const InmailRoutes = lazy(() => import('@inmail/routes/InmailRoutes'));
22
const GroupRoutes = lazy(() => import('@groups/routes/GroupsRoutes'));
3736 stevensc 23
const AccountSettingsRoutes = lazy(() => import('@account-settings/routes/AccountSettingsRoutes'));
3741 stevensc 24
const MyCoachRoutes = lazy(() => import('@my-coach/routes/MyCoachRoutes'));
3719 stevensc 25
 
26
/* Layouts */
27
const AuthLayout = lazy(() => import('@layouts/auth-layout'));
28
 
29
/* Pages */
30
const Login = lazy(() => import('@app/pages/auth/login'));
3741 stevensc 31
// const Signup = lazy(() => import('@app/pages/auth/signup'));
3719 stevensc 32
// const Navigation = lazy(() => import('@pages/auth/navigation'))
33
const ForgotPassword = lazy(() => import('@pages/auth/forgot-password'));
34
const ActiveAccount = lazy(() => import('@pages/auth/active-account'));
35
const ResetPassword = lazy(() => import('@pages/auth/reset-password'));
36
const AbuseReportPage = lazy(() => import('@pages/abuse-report/abuse-repor-page'));
37
const AbuseReportViewPage = lazy(() => import('@pages/abuse-report/abuse-report-view-page'));
38
const ShorterPostPage = lazy(() => import('@pages/shorter/shorter-post-page'));
39
const TermsAndConditionsPage = lazy(
40
  () => import('@pages/terms-and-conditions/TermsAndConditionsPage')
41
);
42
const PrivacyPolicyPage = lazy(() => import('@pages/privacy-policy/PrivacyPolicy'));
43
const CookiesPage = lazy(() => import('@pages/cookies/CookiesPage'));
44
const ProfessionalismPolicy = lazy(
45
  () => import('@pages/professionalism-policy/ProfessionalismPolicy')
46
);
3736 stevensc 47
 
3719 stevensc 48
const DashboardPage = lazy(() => import('@pages/dashboard/dashboard-page'));
49
const MyConnectionsPage = lazy(() => import('@pages/connections/MyConnectionsPage'));
50
const InvitationsReceivedPage = lazy(() => import('@pages/connections/InvitationsReceivedPage'));
51
const InvitationsSendPage = lazy(() => import('@pages/connections/InvitationsSendPage'));
52
const PeopleYouMayKnowPage = lazy(() => import('@pages/connections/PeopleYouMayKnowPage'));
53
const PeopleBlockedPage = lazy(() => import('@pages/connections/PeopleBlockedPage'));
54
const MyProfilesPage = lazy(() => import('@pages/profiles/MyProfilesPage'));
55
const PeopleViewedMyProfilePage = lazy(() => import('@pages/profiles/PeopleViewedMyProfilePage'));
56
const SavedJobsPage = lazy(() => import('@pages/jobs/SavedJobsPage'));
57
const AppliedJobsPage = lazy(() => import('@pages/jobs/AppliedJobsPage'));
58
const MyCompanies = lazy(() => import('@pages/company/MyCompaniesPage'));
59
const FollowingCompaniesPage = lazy(() => import('@pages/company/CompaniesIFollowPage'));
60
const CompaniesWhenIWorkPage = lazy(() => import('@pages/company/CompaniesWhenIWorkPage'));
61
const CompanyRequestSendPage = lazy(() => import('@pages/company/CompanyRequestSendPage'));
62
const CompanyInvitationsReceivedPage = lazy(
63
  () => import('@pages/company/CompanyInvitationsReceivedPage')
64
);
65
const ProfileViewPage = lazy(() => import('@pages/profiles/ProfileViewPage'));
66
const ProfileEditPage = lazy(() => import('@pages/profiles/ProfileEditPage'));
67
const CompanyViewPage = lazy(() => import('@pages/company/CompanyViewPage'));
68
const NotificationsPage = lazy(() => import('@pages/notifications/NotificationsPage'));
69
const SearchPage = lazy(() => import('@pages/search/SearchPage'));
70
 
71
const PostViewPage = lazy(() => import('@pages/posts/PostViewPage'));
3741 stevensc 72
 
3719 stevensc 73
const JobViewPage = lazy(() => import('@pages/jobs/JobView'));
74
const CalendarPage = lazy(() => import('@pages/calendar/CalendarPage'));
75
const ImpersonatePage = lazy(() => import('@pages/impersonate/InpersonatePage'));
76
 
77
export default function AppRoutes() {
78
  return (
79
    <Suspense fallback={<Spinner absolute />}>
80
      <Routes>
81
        <Route element={<RootLayout />}>
82
          {/* Public routes */}
83
          <Route path='/shorter/:id' element={<ShorterPostPage />} />
84
 
85
          <Route path='/terms-and-conditions' element={<TermsAndConditionsPage />} />
86
 
87
          <Route path='/privacy-policy' element={<PrivacyPolicyPage />} />
88
 
89
          <Route path='/professionalism-policy' element={<ProfessionalismPolicy />} />
90
 
91
          <Route path='/cookies' element={<CookiesPage />} />
92
 
93
          {/* Authentication routes */}
94
          <Route path='/' element={<AuthRoute />}>
95
            <Route element={<AuthLayout />}>
3741 stevensc 96
              <Route index element={<Login />} />
3719 stevensc 97
              <Route path='signin' element={<Login />} />
98
              <Route path='forgot-password' element={<ForgotPassword />} />
99
              <Route path='reset-password/:uuid' element={<ResetPassword />} />
100
              <Route path='activate-account/:uuid' element={<ActiveAccount />} />
3741 stevensc 101
              <Route path='*' element={<Navigate to='/signin' />} />
3719 stevensc 102
            </Route>
103
          </Route>
104
 
105
          {/* Private routes */}
106
          <Route element={<PrivateRoutes />}>
107
            <Route element={<PrivateRoutesLayout />}>
108
              <Route path='/habits/*' element={<HabitsRoutes />} />
109
              <Route path='/group/*' element={<GroupRoutes />} />
110
              <Route path='/marketplace/*' element={<MarketplaceRoutes />} />
111
              <Route path='/knowledge-area/*' element={<KnowledgesRoutes />} />
112
              <Route path='/microlearning/*' element={<MicrolearningRoutes />} />
113
              <Route path='/inmail/*' element={<InmailRoutes />} />
3741 stevensc 114
              <Route path='/my-coach/*' element={<MyCoachRoutes />} />
3719 stevensc 115
 
116
              <Route path='abuse-report'>
117
                <Route index element={<AbuseReportPage />} />
118
                <Route path='view/:id' element={<AbuseReportViewPage />} />
119
              </Route>
120
 
121
              <Route path='/dashboard'>
122
                <Route index element={<DashboardPage />} />
123
                <Route path='feed/:id' element={<DashboardPage />} />
124
              </Route>
125
 
126
              <Route path='/connection'>
127
                <Route index element={<Navigate to='my-connections' />} />
128
                <Route path='my-connections' element={<MyConnectionsPage />} />
129
                <Route path='invitations-sent' element={<InvitationsSendPage />} />
130
                <Route path='invitations-received' element={<InvitationsReceivedPage />} />
131
                <Route path='people-you-may-know' element={<PeopleYouMayKnowPage />} />
132
                <Route path='people-blocked' element={<PeopleBlockedPage />} />
133
              </Route>
134
 
135
              <Route path='/profile'>
136
                <Route index element={<Navigate to='my-profiles' />} />
137
                <Route path='view/:uuid' element={<ProfileViewPage />} />
138
                <Route path='people-viewed-profile' element={<PeopleViewedMyProfilePage />} />
139
                <Route path='my-profiles'>
140
                  <Route index element={<MyProfilesPage />} />
141
                  <Route path='edit/:uuid' element={<ProfileEditPage />} />
142
                </Route>
143
              </Route>
144
 
145
              <Route path='/job'>
146
                <Route index element={<Navigate to='saved-jobs' />} />
147
                <Route path='view/:uuid' element={<JobViewPage />} />
148
                <Route path='saved-jobs' element={<SavedJobsPage />} />
149
                <Route path='applied-jobs' element={<AppliedJobsPage />} />\
150
              </Route>
151
 
152
              <Route path='/company'>
153
                <Route index element={<Navigate to='my-companies' />} />
154
                <Route path='my-companies' element={<MyCompanies />} />
155
                <Route path='following-companies' element={<FollowingCompaniesPage />} />
156
                <Route path='i-work-with' element={<CompaniesWhenIWorkPage />} />
157
                <Route path='requests-sent' element={<CompanyRequestSendPage />} />
158
                <Route path='requests-sent' element={<CompanyRequestSendPage />} />
159
                <Route path='invitations-received' element={<CompanyInvitationsReceivedPage />} />
160
                <Route path='view/:uuid' element={<CompanyViewPage />} />
161
              </Route>
162
 
3736 stevensc 163
              <Route path='/account-settings/*' element={<AccountSettingsRoutes />} />
3719 stevensc 164
 
165
              <Route path='/notifications' element={<NotificationsPage />} />
166
              <Route path='/search/entity/:category' element={<SearchPage />} />
167
              <Route path='/calendar' element={<CalendarPage />} />
168
              <Route path='/signin/impersonate' element={<ImpersonatePage />} />
169
              <Route path='/post/:uuid' element={<PostViewPage />} />
170
              <Route path='/apps-navigation' element={<AppsNavigation />} />
171
 
172
              <Route path='*' element={<Navigate to='/dashboard' />} />
173
            </Route>
174
          </Route>
175
        </Route>
176
      </Routes>
177
    </Suspense>
178
  );
179
}