Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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