Rev 7210 | Rev 7317 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { lazy, Suspense, useEffect } from 'react'import { useDispatch, useSelector } from 'react-redux'import { BrowserRouter as Router, Switch } from 'react-router-dom'import { getLanguage } from '../../redux/intl/intl.action'import { getPermissions } from '../redux/auth/auth.actions'import PublicRoute from './PublicRoute'import PrivateRoute from './PrivateRoute'import Spinner from '../components/UI/Spinner'import NotificationAlert from '../components/UI/notification/NotificationAlert'import LoaderContainer from '../components/UI/LoaderContainer'const Header = lazy(() => import('../components/navbar/Header'))const Auth = lazy(() => import('../pages/auth/Auth'))const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))const MyConnectionsPage = lazy(() =>import('../pages/connections/MyConnectionsPage'))const InvitationsReceivedPage = lazy(() =>import('../pages/connections/InvitationsReceivedPage'))const InvitationsSendPage = lazy(() =>import('../pages/connections/InvitationsSendPage'))const PeopleYouMayKnowPage = lazy(() =>import('../pages/connections/PeopleYouMayKnowPage'))const PeopleBlockedPage = lazy(() =>import('../pages/connections/PeopleBlockedPage'))const MyProfilesPage = lazy(() => import('../pages/profiles/MyProfilesPage'))const PeopleViewedMyProfilePage = lazy(() =>import('../pages/profiles/PeopleViewedMyProfilePage'))const SavedJobsPage = lazy(() => import('../pages/jobs/SavedJobsPage'))const AppliedJobsPage = lazy(() => import('../pages/jobs/AppliedJobsPage'))const GroupsRequestsSendPage = lazy(() =>import('../pages/groups/GroupsRequestsSendPage'))const GroupsRequestsReceivedPage = lazy(() =>import('../pages/groups/GroupsRequestsReceivedPage'))const JoinedGroupsPage = lazy(() => import('../pages/groups/JoinedGroupsPage'))const MyGroupsPage = lazy(() => import('../pages/groups/MyGroupsPage'))const MyCompanies = lazy(() => import('../pages/company/MyCompaniesPage'))const FollowingCompaniesPage = lazy(() =>import('../pages/company/FollowingCompaniesPage'))const CompaniesWhenIWorkPage = lazy(() =>import('../pages/company/CompaniesWhenIWorkPage'))const CompanyRequestSendPage = lazy(() =>import('../pages/company/CompanyRequestSendPage'))const CompanyInvitationsReceivedPage = lazy(() =>import('../pages/company/CompanyInvitationsReceivedPage'))const ProfileViewPage = lazy(() => import('../pages/profiles/ProfileViewPage'))const ProfileEditPage = lazy(() => import('../pages/profiles/ProfileEditPage'))const CompanyViewPage = lazy(() => import('../pages/company/CompanyViewPage'))const GroupViewPage = lazy(() => import('../pages/groups/GroupViewPage'))const GroupEditPage = lazy(() => import('../pages/groups/GroupEditPage'))const ChatPage = lazy(() => import('../pages/chat/ChatPage'))const InmailPage = lazy(() => import('../pages/inmail/InmailPage'))const MarketPlacePage = lazy(() =>import('../pages/marketplace/MarketplacePage'))const NotificationsPage = lazy(() =>import('../pages/notifications/NotificationsPage'))const SearchPage = lazy(() => import('../pages/search/SearchPage'))const KnowledgeAreaPage = lazy(() =>import('../pages/knowledge-area/KnowledgeAreaPage'))const KnowledgeViewPage = lazy(() =>import('../pages/knowledge-area/KnowledgeViewPage'))const PostViewPage = lazy(() => import('../pages/posts/PostViewPage'))const MyCoachPage = lazy(() => import('../pages/my-coach/MyCoachPage'))const MyCoachViewPage = lazy(() => import('../pages/my-coach/MyCoachViewPage'))const JobViewPage = lazy(() => import('../pages/jobs/JobView'))const AppRouter = () => {const { isAuth, theme_id } = useSelector(({ auth }) => auth)const dispatch = useDispatch()useEffect(() => {dispatch(getPermissions())dispatch(getLanguage())}, [])return (<Router><Suspense fallback={null}>{isAuth && <Header theme={theme_id} />}</Suspense><Suspensefallback={<LoaderContainer><Spinner /></LoaderContainer>}><Switch><PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}><DashboardPage /></PrivateRoute><PrivateRouteexactpath="/connection/my-connections"isAuthenticated={isAuth}><MyConnectionsPage /></PrivateRoute><PrivateRouteexactpath="/connection/invitations-sent"isAuthenticated={isAuth}><InvitationsSendPage /></PrivateRoute><PrivateRouteexactpath="/connection/invitations-received"isAuthenticated={isAuth}><InvitationsReceivedPage /></PrivateRoute><PrivateRouteexactpath="/connection/people-you-may-know"isAuthenticated={isAuth}><PeopleYouMayKnowPage /></PrivateRoute><PrivateRouteexactpath="/connection/people-blocked"isAuthenticated={isAuth}><PeopleBlockedPage /></PrivateRoute><PrivateRouteexactpath="/profile/my-profiles"isAuthenticated={isAuth}><MyProfilesPage /></PrivateRoute><PrivateRouteexactpath="/profile/people-viewed-profile"isAuthenticated={isAuth}><PeopleViewedMyProfilePage /></PrivateRoute><PrivateRoute path="/profile/view/:uuid" isAuthenticated={isAuth}><ProfileViewPage /></PrivateRoute><PrivateRoutepath="/profile/my-profiles/edit/:uuid"isAuthenticated={isAuth}><ProfileEditPage /></PrivateRoute><PrivateRoute exact path="/job/saved-jobs" isAuthenticated={isAuth}><SavedJobsPage /></PrivateRoute><PrivateRoute exact path="/job/applied-jobs" isAuthenticated={isAuth}><AppliedJobsPage /></PrivateRoute><PrivateRouteexactpath="/group/requests-sent"isAuthenticated={isAuth}><GroupsRequestsSendPage /></PrivateRoute><PrivateRouteexactpath="/group/invitations-received"isAuthenticated={isAuth}><GroupsRequestsReceivedPage /></PrivateRoute><PrivateRouteexactpath="/group/joined-groups"isAuthenticated={isAuth}><JoinedGroupsPage /></PrivateRoute><PrivateRoute exact path="/group/my-groups" isAuthenticated={isAuth}><MyGroupsPage /></PrivateRoute><PrivateRoute path="/group/view/:uuid" isAuthenticated={isAuth}><GroupViewPage /></PrivateRoute><PrivateRoutepath="/group/my-groups/edit/:uuid"isAuthenticated={isAuth}><GroupEditPage /></PrivateRoute><PrivateRouteexactpath="/company/my-companies"isAuthenticated={isAuth}><MyCompanies /></PrivateRoute><PrivateRouteexactpath="/company/following-companies"isAuthenticated={isAuth}><FollowingCompaniesPage /></PrivateRoute><PrivateRouteexactpath="/company/i-work-with"isAuthenticated={isAuth}><CompaniesWhenIWorkPage /></PrivateRoute><PrivateRouteexactpath="/company/requests-sent"isAuthenticated={isAuth}><CompanyRequestSendPage /></PrivateRoute><PrivateRouteexactpath="/company/requests-sent"isAuthenticated={isAuth}><CompanyRequestSendPage /></PrivateRoute><PrivateRouteexactpath="/company/invitations-received"isAuthenticated={isAuth}><CompanyInvitationsReceivedPage /></PrivateRoute><PrivateRoute path="/company/view/:uuid" isAuthenticated={isAuth}><CompanyViewPage /></PrivateRoute><PrivateRoute path="/chat" isAuthenticated={isAuth}><ChatPage /></PrivateRoute><PrivateRoute path="/inmail/:uuid" isAuthenticated={isAuth}><InmailPage /></PrivateRoute><PrivateRoute path="/inmail" isAuthenticated={isAuth}><InmailPage /></PrivateRoute><PrivateRoute path="/marketplace" isAuthenticated={isAuth}><MarketPlacePage /></PrivateRoute><PrivateRoute path="/notifications" isAuthenticated={isAuth}><NotificationsPage /></PrivateRoute><PrivateRoute path="/search" isAuthenticated={isAuth}><SearchPage /></PrivateRoute><PrivateRoutepath="/knowledge-area/view/:uuid"isAuthenticated={isAuth}><KnowledgeViewPage /></PrivateRoute><PrivateRoute path="/knowledge-area" isAuthenticated={isAuth}><KnowledgeAreaPage /></PrivateRoute><PrivateRoute path="/job/view/:uuid" isAuthenticated={isAuth}><JobViewPage /></PrivateRoute><PrivateRoute path="/post/:uuid" isAuthenticated={isAuth}><PostViewPage /></PrivateRoute><PrivateRoutepath="/my-coach/questions/view/:uuid"isAuthenticated={isAuth}><MyCoachViewPage /></PrivateRoute><PrivateRoute exact path="/my-coach" isAuthenticated={isAuth}><MyCoachPage /></PrivateRoute><PublicRoute path="/" isAuthenticated={isAuth}><Auth /></PublicRoute></Switch></Suspense><NotificationAlert /></Router>)}export default AppRouter