Path: blob/1.0-develop/resources/scripts/routers/DashboardRouter.tsx
7458 views
import React from 'react';1import { NavLink, Route, Switch } from 'react-router-dom';2import NavigationBar from '@/components/NavigationBar';3import DashboardContainer from '@/components/dashboard/DashboardContainer';4import { NotFound } from '@/components/elements/ScreenBlock';5import TransitionRouter from '@/TransitionRouter';6import SubNavigation from '@/components/elements/SubNavigation';7import { useLocation } from 'react-router';8import Spinner from '@/components/elements/Spinner';9import routes from '@/routers/routes';1011export default () => {12const location = useLocation();1314return (15<>16<NavigationBar />17{location.pathname.startsWith('/account') && (18<SubNavigation>19<div>20{routes.account21.filter((route) => !!route.name)22.map(({ path, name, exact = false }) => (23<NavLink key={path} to={`/account/${path}`.replace('//', '/')} exact={exact}>24{name}25</NavLink>26))}27</div>28</SubNavigation>29)}30<TransitionRouter>31<React.Suspense fallback={<Spinner centered />}>32<Switch location={location}>33<Route path={'/'} exact>34<DashboardContainer />35</Route>36{routes.account.map(({ path, component: Component }) => (37<Route key={path} path={`/account/${path}`.replace('//', '/')} exact>38<Component />39</Route>40))}41<Route path={'*'}>42<NotFound />43</Route>44</Switch>45</React.Suspense>46</TransitionRouter>47</>48);49};505152