Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6592 | Rev 6696 | 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 PublicRoute from './PublicRoute'
import PrivateRoute from './PrivateRoute'
import NotificationAlert from '../components/UI/notification/NotificationAlert'
import Spinner from '../components/UI/Spinner'

const Auth = lazy(() => import('../pages/auth/Auth'))
const DashboardPage = lazy(() => import('../pages/dashboard/DashboardPage'))

const AppRouter = () => {
  const { isAuth } = useSelector(({ auth }) => auth)
  const dispatch = useDispatch()

  useEffect(() => {
    dispatch(getLanguage())
  }, [])

  return (
    <Router>
      {}
      <Switch>
        <Suspense fallback={<Spinner />}>
          <PrivateRoute exact path="/dashboard" isAuthenticated={isAuth}>
            <DashboardPage />
          </PrivateRoute>

          <PublicRoute path="/" isAuthenticated={isAuth}>
            <Auth />
          </PublicRoute>
        </Suspense>
      </Switch>

      <NotificationAlert />
    </Router>
  )
}

export default AppRouter