Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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