Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6745 | Rev 6753 | 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'
5
 
6530 stevensc 6
import PublicRoute from './PublicRoute'
6601 stevensc 7
import PrivateRoute from './PrivateRoute'
6707 stevensc 8
import Spinner from '../components/UI/Spinner'
6512 stevensc 9
import NotificationAlert from '../components/UI/notification/NotificationAlert'
6738 stevensc 10
import LoaderContainer from '../components/UI/LoaderContainer'
6745 stevensc 11
import { getPermissions } from '../redux/auth/auth.actions'
12
import useLocalStorage from '../hooks/useLocalStorage'
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'))
6490 stevensc 46
 
47
const AppRouter = () => {
6745 stevensc 48
  const { isAuth, defaultNetwork, theme_id } = useSelector(({ auth }) => auth)
6490 stevensc 49
  const dispatch = useDispatch()
50
 
6748 stevensc 51
  const [, setLocalStorage] = useLocalStorage('config', {
6745 stevensc 52
    isAuth,
53
    defaultNetwork,
54
    theme_id,
55
  })
56
 
6490 stevensc 57
  useEffect(() => {
6745 stevensc 58
    dispatch(getPermissions())
6490 stevensc 59
    dispatch(getLanguage())
60
  }, [])
61
 
6748 stevensc 62
  useEffect(() => {
63
    setLocalStorage({
64
      isAuth,
65
      defaultNetwork,
66
      theme_id,
67
    })
68
  }, [isAuth, defaultNetwork, theme_id])
69
 
6490 stevensc 70
  return (
71
    <Router>
6724 stevensc 72
      <Suspense fallback={null}>{isAuth && <Header />}</Suspense>
73
 
6707 stevensc 74
      <Suspense
75
        fallback={
6738 stevensc 76
          <LoaderContainer>
6707 stevensc 77
            <Spinner />
6738 stevensc 78
          </LoaderContainer>
6707 stevensc 79
        }
80
      >
81
        <Switch>
6601 stevensc 82
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
83
            <DashboardPage />
84
          </PrivateRoute>
6738 stevensc 85
 
6707 stevensc 86
          <PrivateRoute
87
            exact
88
            path="/connection/my-connections"
89
            isAuthenticated={isAuth}
90
          >
91
            <MyConnectionsPage />
92
          </PrivateRoute>
6719 stevensc 93
          <PrivateRoute
94
            exact
95
            path="/connection/invitations-sent"
96
            isAuthenticated={isAuth}
97
          >
98
            <InvitationsSendPage />
99
          </PrivateRoute>
6724 stevensc 100
          <PrivateRoute
101
            exact
102
            path="/connection/invitations-received"
103
            isAuthenticated={isAuth}
104
          >
105
            <InvitationsReceivedPage />
106
          </PrivateRoute>
6725 stevensc 107
          <PrivateRoute
108
            exact
109
            path="/connection/people-you-may-know"
110
            isAuthenticated={isAuth}
111
          >
112
            <PeopleYouMayKnowPage />
113
          </PrivateRoute>
114
          <PrivateRoute
115
            exact
6726 stevensc 116
            path="/connection/people-blocked"
6725 stevensc 117
            isAuthenticated={isAuth}
118
          >
119
            <PeopleBlockedPage />
120
          </PrivateRoute>
6738 stevensc 121
 
6727 stevensc 122
          <PrivateRoute
123
            exact
124
            path="/profile/my-profiles"
125
            isAuthenticated={isAuth}
126
          >
127
            <MyProfilesPage />
128
          </PrivateRoute>
129
          <PrivateRoute
130
            exact
131
            path="/profile/people-viewed-profile"
132
            isAuthenticated={isAuth}
133
          >
134
            <PeopleViewedMyProfilePage />
135
          </PrivateRoute>
6738 stevensc 136
 
6727 stevensc 137
          <PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}>
138
            <SavedJobsPage />
139
          </PrivateRoute>
140
          <PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}>
6729 stevensc 141
            <AppliedJobsPage />
6727 stevensc 142
          </PrivateRoute>
6601 stevensc 143
 
6738 stevensc 144
          <PrivateRoute
145
            exact
6740 stevensc 146
            path="/group/requests-sent"
6738 stevensc 147
            isAuthenticated={isAuth}
148
          >
149
            <GroupsRequestsSendPage />
150
          </PrivateRoute>
151
          <PrivateRoute
152
            exact
153
            path="/group/invitations-received"
154
            isAuthenticated={isAuth}
155
          >
156
            <GroupsRequestsReceivedPage />
157
          </PrivateRoute>
158
          <PrivateRoute
159
            exact
160
            path="/group/joined-groups"
161
            isAuthenticated={isAuth}
162
          >
163
            <JoinedGroupsPage />
164
          </PrivateRoute>
165
          <PrivateRoute exact path="/group/my-groups" isAuthenticated={isAuth}>
166
            <MyGroupsPage />
167
          </PrivateRoute>
168
 
6601 stevensc 169
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 170
            <Auth />
171
          </PublicRoute>
6707 stevensc 172
        </Switch>
173
      </Suspense>
6512 stevensc 174
 
175
      <NotificationAlert />
6490 stevensc 176
    </Router>
177
  )
178
}
179
 
180
export default AppRouter