Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6805 | Rev 6862 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6601 stevensc 1
import React, { lazy, Suspense, useEffect } from 'react'
2
import { useDispatch, useSelector } from 'react-redux'
6514 stevensc 3
import { BrowserRouter as Router, Switch } from 'react-router-dom'
6490 stevensc 4
import { getLanguage } from '../../redux/intl/intl.action'
6753 stevensc 5
import { getPermissions } from '../redux/auth/auth.actions'
6490 stevensc 6
 
6530 stevensc 7
import PublicRoute from './PublicRoute'
6601 stevensc 8
import PrivateRoute from './PrivateRoute'
6707 stevensc 9
import Spinner from '../components/UI/Spinner'
6512 stevensc 10
import NotificationAlert from '../components/UI/notification/NotificationAlert'
6738 stevensc 11
import LoaderContainer from '../components/UI/LoaderContainer'
6830 stevensc 12
import CompanyViewPage from '../pages/company/CompanyViewPage'
6490 stevensc 13
 
6707 stevensc 14
const Header = lazy(() => import('../components/navbar/Header'))
6601 stevensc 15
const Auth = lazy(() => import('../pages/auth/Auth'))
16
const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))
6707 stevensc 17
const MyConnectionsPage = lazy(() =>
6719 stevensc 18
  import('../pages/connections/MyConnectionsPage')
6707 stevensc 19
)
6724 stevensc 20
const InvitationsReceivedPage = lazy(() =>
21
  import('../pages/connections/InvitationsReceivedPage')
22
)
6719 stevensc 23
const InvitationsSendPage = lazy(() =>
6724 stevensc 24
  import('../pages/connections/InvitationsSendPage')
6719 stevensc 25
)
6725 stevensc 26
const PeopleYouMayKnowPage = lazy(() =>
27
  import('../pages/connections/PeopleYouMayKnowPage')
28
)
29
const PeopleBlockedPage = lazy(() =>
30
  import('../pages/connections/PeopleBlockedPage')
31
)
6738 stevensc 32
const MyProfilesPage = lazy(() => import('../pages/profiles/MyProfilesPage'))
33
const PeopleViewedMyProfilePage = lazy(() =>
34
  import('../pages/profiles/PeopleViewedMyProfilePage')
35
)
36
const SavedJobsPage = lazy(() => import('../pages/jobs/SavedJobsPage'))
37
const AppliedJobsPage = lazy(() => import('../pages/jobs/AppliedJobsPage'))
38
const GroupsRequestsSendPage = lazy(() =>
39
  import('../pages/groups/GroupsRequestsSendPage')
40
)
41
const GroupsRequestsReceivedPage = lazy(() =>
42
  import('../pages/groups/GroupsRequestsReceivedPage')
43
)
44
const JoinedGroupsPage = lazy(() => import('../pages/groups/JoinedGroupsPage'))
45
const MyGroupsPage = lazy(() => import('../pages/groups/MyGroupsPage'))
6753 stevensc 46
const MyCompanies = lazy(() => import('../pages/company/MyCompaniesPage'))
47
const FollowingCompaniesPage = lazy(() =>
48
  import('../pages/company/FollowingCompaniesPage')
49
)
50
const CompaniesWhenIWorkPage = lazy(() =>
51
  import('../pages/company/CompaniesWhenIWorkPage')
52
)
53
const CompanyRequestSendPage = lazy(() =>
54
  import('../pages/company/CompanyRequestSendPage')
55
)
56
const CompanyInvitationsReceivedPage = lazy(() =>
57
  import('../pages/company/CompanyInvitationsReceivedPage')
58
)
59
const ProfileViewPage = lazy(() => import('../pages/profiles/ProfileViewPage'))
6805 stevensc 60
const ProfileEditPage = lazy(() => import('../pages/profiles/ProfileEditPage'))
6490 stevensc 61
 
62
const AppRouter = () => {
6753 stevensc 63
  const { isAuth, theme_id } = useSelector(({ auth }) => auth)
6490 stevensc 64
  const dispatch = useDispatch()
65
 
66
  useEffect(() => {
6745 stevensc 67
    dispatch(getPermissions())
6490 stevensc 68
    dispatch(getLanguage())
69
  }, [])
70
 
71
  return (
72
    <Router>
6753 stevensc 73
      <Suspense fallback={null}>
74
        {isAuth && <Header theme={theme_id} />}
75
      </Suspense>
6724 stevensc 76
 
6707 stevensc 77
      <Suspense
78
        fallback={
6738 stevensc 79
          <LoaderContainer>
6707 stevensc 80
            <Spinner />
6738 stevensc 81
          </LoaderContainer>
6707 stevensc 82
        }
83
      >
84
        <Switch>
6601 stevensc 85
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
86
            <DashboardPage />
87
          </PrivateRoute>
6738 stevensc 88
 
6707 stevensc 89
          <PrivateRoute
90
            exact
91
            path="/connection/my-connections"
92
            isAuthenticated={isAuth}
93
          >
94
            <MyConnectionsPage />
95
          </PrivateRoute>
6719 stevensc 96
          <PrivateRoute
97
            exact
98
            path="/connection/invitations-sent"
99
            isAuthenticated={isAuth}
100
          >
101
            <InvitationsSendPage />
102
          </PrivateRoute>
6724 stevensc 103
          <PrivateRoute
104
            exact
105
            path="/connection/invitations-received"
106
            isAuthenticated={isAuth}
107
          >
108
            <InvitationsReceivedPage />
109
          </PrivateRoute>
6725 stevensc 110
          <PrivateRoute
111
            exact
112
            path="/connection/people-you-may-know"
113
            isAuthenticated={isAuth}
114
          >
115
            <PeopleYouMayKnowPage />
116
          </PrivateRoute>
117
          <PrivateRoute
118
            exact
6726 stevensc 119
            path="/connection/people-blocked"
6725 stevensc 120
            isAuthenticated={isAuth}
121
          >
122
            <PeopleBlockedPage />
123
          </PrivateRoute>
6738 stevensc 124
 
6727 stevensc 125
          <PrivateRoute
126
            exact
127
            path="/profile/my-profiles"
128
            isAuthenticated={isAuth}
129
          >
130
            <MyProfilesPage />
131
          </PrivateRoute>
132
          <PrivateRoute
133
            exact
134
            path="/profile/people-viewed-profile"
135
            isAuthenticated={isAuth}
136
          >
137
            <PeopleViewedMyProfilePage />
138
          </PrivateRoute>
6738 stevensc 139
 
6727 stevensc 140
          <PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}>
141
            <SavedJobsPage />
142
          </PrivateRoute>
143
          <PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}>
6729 stevensc 144
            <AppliedJobsPage />
6727 stevensc 145
          </PrivateRoute>
6601 stevensc 146
 
6738 stevensc 147
          <PrivateRoute
148
            exact
6740 stevensc 149
            path="/group/requests-sent"
6738 stevensc 150
            isAuthenticated={isAuth}
151
          >
152
            <GroupsRequestsSendPage />
153
          </PrivateRoute>
154
          <PrivateRoute
155
            exact
156
            path="/group/invitations-received"
157
            isAuthenticated={isAuth}
158
          >
159
            <GroupsRequestsReceivedPage />
160
          </PrivateRoute>
161
          <PrivateRoute
162
            exact
163
            path="/group/joined-groups"
164
            isAuthenticated={isAuth}
165
          >
166
            <JoinedGroupsPage />
167
          </PrivateRoute>
168
          <PrivateRoute exact path="/group/my-groups" isAuthenticated={isAuth}>
169
            <MyGroupsPage />
170
          </PrivateRoute>
171
 
6753 stevensc 172
          <PrivateRoute
173
            exact
174
            path="/company/my-companies"
175
            isAuthenticated={isAuth}
176
          >
177
            <MyCompanies />
178
          </PrivateRoute>
179
          <PrivateRoute
180
            exact
181
            path="/company/following-companies"
182
            isAuthenticated={isAuth}
183
          >
184
            <FollowingCompaniesPage />
185
          </PrivateRoute>
186
          <PrivateRoute
187
            exact
188
            path="/company/i-work-with"
189
            isAuthenticated={isAuth}
190
          >
191
            <CompaniesWhenIWorkPage />
192
          </PrivateRoute>
193
          <PrivateRoute
194
            exact
195
            path="/company/requests-sent"
196
            isAuthenticated={isAuth}
197
          >
198
            <CompanyRequestSendPage />
199
          </PrivateRoute>
200
          <PrivateRoute
201
            exact
202
            path="/company/requests-sent"
203
            isAuthenticated={isAuth}
204
          >
205
            <CompanyRequestSendPage />
206
          </PrivateRoute>
207
          <PrivateRoute
208
            exact
209
            path="/company/invitations-received"
210
            isAuthenticated={isAuth}
211
          >
212
            <CompanyInvitationsReceivedPage />
213
          </PrivateRoute>
214
          <PrivateRoute path="/profile/view/:uuid" isAuthenticated={isAuth}>
215
            <ProfileViewPage />
216
          </PrivateRoute>
6805 stevensc 217
          <PrivateRoute
218
            path="/profile/my-profiles/edit/:uuid"
219
            isAuthenticated={isAuth}
220
          >
221
            <ProfileEditPage />
222
          </PrivateRoute>
6753 stevensc 223
 
6830 stevensc 224
          <PrivateRoute path="/company/view/:uuid" isAuthenticated={isAuth}>
225
            <CompanyViewPage />
226
          </PrivateRoute>
227
 
6601 stevensc 228
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 229
            <Auth />
230
          </PublicRoute>
6707 stevensc 231
        </Switch>
232
      </Suspense>
6512 stevensc 233
 
234
      <NotificationAlert />
6490 stevensc 235
    </Router>
236
  )
237
}
238
 
239
export default AppRouter