import type { FC } from 'react'; import loadable from '@loadable/component'; import * as Urls from '../urls'; import { Route, Switch } from 'react-router'; import type { Page } from '@cutting/util'; import { ContactMe } from '../components/ContactMe'; const fallback =
loading....
; const Home = loadable(() => import('../components/Home'), { fallback, }); const OSS = loadable(() => import('../components/OSS'), { fallback, }); const Blog = loadable(() => import('../components/Blog'), { fallback, }); const CV = loadable(() => import('../components/cv'), { fallback, }); const PrivacyPolicy = loadable(() => import('../components/PrivacyPolicy'), { fallback, }); const TermsOfService = loadable(() => import('../components/TermsOfService'), { fallback, }); const Graphs = loadable(() => import(/* webpackPrefetch: true */ '../components/Graphs/Landing'), { fallback, }); const Viz = loadable(() => import('../containers/Viz/Viz'), { fallback, }); /* eslint-disable react/display-name */ export const routable: Page[] = [ { heading: 'Home', path: Urls.Home, component: Home, exact: true, }, { heading: 'OSS', path: Urls.OSS, component: OSS, exact: true, }, { heading: 'Blog', path: Urls.Blog, component: Blog, exact: true, }, { heading: 'CV', path: Urls.CV, component: CV, exact: true, }, { heading: 'Privacy Policy', path: Urls.PrivacyPolicy, component: PrivacyPolicy, exact: true, footerPage: true, }, { heading: 'Terms of Service', path: Urls.TermsOfService, component: TermsOfService, exact: true, footerPage: true, }, { heading: 'COVID-19', path: Urls.Covid19, component: Graphs, exact: false, footerPage: false, }, { heading: 'Viz', path: Urls.Viz, component: Viz, exact: false, footerPage: false, }, ]; export const Routes: FC = () => ( {routable.map(({ path, ...rest }) => ( ))} ); export const bannerPages = routable.filter((p) => !p.footerPage && p.path !== Urls.Home); export const footerPages = routable.filter((p) => p.footerPage);