Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6717 | Rev 6719 | 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'
6707 stevensc 4
import styled from 'styled-components'
6490 stevensc 5
import { getLanguage } from '../../redux/intl/intl.action'
6
 
6530 stevensc 7
import PublicRoute from './PublicRoute'
6601 stevensc 8
import PrivateRoute from './PrivateRoute'
6707 stevensc 9
 
10
import Spinner from '../components/UI/Spinner'
6512 stevensc 11
import NotificationAlert from '../components/UI/notification/NotificationAlert'
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(() =>
17
  import('../pages/my-connections/MyConnectionsPage')
18
)
6490 stevensc 19
 
6707 stevensc 20
const StyledSpinnerContainer = styled.div`
6718 stevensc 21
  margin: 1rem auto;
22
  position: relative;
6717 stevensc 23
  width: 80px;
24
  text-align: center;
25
  height: 80px;
26
  border-radius: 100px;
27
  background-color: #fff;
28
  line-height: 80px;
29
  border: 1px solid #e1e1e1;
30
  cursor: pointer;
6707 stevensc 31
`
32
 
6490 stevensc 33
const AppRouter = () => {
6601 stevensc 34
  const { isAuth } = useSelector(({ auth }) => auth)
6490 stevensc 35
  const dispatch = useDispatch()
36
 
37
  useEffect(() => {
38
    dispatch(getLanguage())
39
  }, [])
40
 
41
  return (
42
    <Router>
6707 stevensc 43
      <Suspense
44
        fallback={
45
          <StyledSpinnerContainer>
46
            <Spinner />
47
          </StyledSpinnerContainer>
48
        }
49
      >
50
        {isAuth && <Header />}
51
 
52
        <Switch>
6601 stevensc 53
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
54
            <DashboardPage />
55
          </PrivateRoute>
6707 stevensc 56
          <PrivateRoute
57
            exact
58
            path="/connection/my-connections"
59
            isAuthenticated={isAuth}
60
          >
61
            <MyConnectionsPage />
62
          </PrivateRoute>
6601 stevensc 63
 
64
          <PublicRoute path="/" isAuthenticated={isAuth}>
6546 stevensc 65
            <Auth />
66
          </PublicRoute>
6707 stevensc 67
        </Switch>
68
      </Suspense>
6512 stevensc 69
 
70
      <NotificationAlert />
6490 stevensc 71
    </Router>
72
  )
73
}
74
 
75
export default AppRouter