import React from 'react' import { Theme } from '@material-ui/core/styles' import Grid from '@material-ui/core/Grid' import universal, { UniversalComponent } from 'react-universal-component' import { StyledComponentProps } from '@material-ui/core/styles' import { Switch } from 'react-router-dom' import { hot } from 'react-hot-loader' import { withStyles } from '@material-ui/core/styles' import Header from 'pages/Header' import Loading from 'components/Loading' import Notifications from 'pages/Notifications' import PrivateRoute from './PrivateRoute' // Asynchronously load routes that are chunked via code-splitting // 'import' as a function must take a string. It can't take a variable. const uniOpts = { loading: Loading } const DashboardsIndex: UniversalComponent< Pick< { classes: any }, never > & StyledComponentProps<'wrapper' | 'text'> & { recentJobRunsCount: number recentlyCreatedPageSize: number } > = universal(import('./pages/Dashboards/Index'), uniOpts) const JobRunsIndex: UniversalComponent< Pick< { classes: any }, never > & { pagePath: string } > = universal(import('./pages/JobRuns/Index'), uniOpts) const JobsIndex = universal(import('./pages/JobsIndex/JobsIndex'), uniOpts) const JobsShow = universal(import('./pages/Jobs/Show'), uniOpts) const JobsNew = universal(import('./pages/Jobs/New'), uniOpts) const BridgesIndex = universal(import('./pages/Bridges/Index'), uniOpts) const BridgesNew = universal(import('./pages/Bridges/New'), uniOpts) const BridgesShow = universal(import('./pages/Bridges/Show'), uniOpts) const BridgesEdit = universal(import('./pages/Bridges/Edit'), uniOpts) const JobRunsShowOverview = universal(import('./pages/Jobs/Runs/Show'), uniOpts) const TransactionsIndex = universal( import('./pages/Transactions/Index'), uniOpts, ) const TransactionsShow = universal(import('./pages/Transactions/Show'), uniOpts) const Configuration = universal(import('./pages/Configuration/Index'), uniOpts) const NotFound = universal(import('./pages/NotFound'), uniOpts) const KeysIndex = universal(import('./pages/Keys/Index'), uniOpts) const styles = (theme: Theme) => { return { content: { marginTop: 0, marginBottom: theme.spacing.unit * 5, }, } } const Private = ({ classes }: { classes: { content: string } }) => { const [headerHeight, setHeaderHeight] = React.useState(0) let drawerContainerRef: HTMLElement | null = null return (
setHeaderHeight(height)} drawerContainer={drawerContainerRef} />
{ drawerContainerRef = ref }} style={{ paddingTop: headerHeight }} >
( )} /> ( )} /> ( )} /> ;
) } export default hot(module)(withStyles(styles)(Private))