github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/dashboard/frontend/src/routes.tsx (about)

     1  import { A } from 'hookrouter'
     2  import Dashboard from './pages/Dashboard'
     3  import Network from './pages/Network'
     4  import Jobs from './pages/Jobs'
     5  import Job from './pages/Job'
     6  
     7  export type IRouteObject = {
     8    id: string,
     9    title?: string | JSX.Element,
    10    render: {
    11      (): JSX.Element,
    12    },
    13    params: Record<string, any>,
    14  }
    15  
    16  export type IRouteFactory = (props: Record<string, any>) => IRouteObject
    17  
    18  export const routes: Record<string, IRouteFactory> = {
    19    '/': () => ({
    20      id: 'home',
    21      title: 'Home',
    22      render: () => <Dashboard />,
    23      params: {},
    24    }),
    25    '/network': () => ({
    26      id: 'network',
    27      title: 'Network',
    28      render: () => <Network />,
    29      params: {},
    30    }),
    31    '/jobs': () => ({
    32      id: 'jobs',
    33      title: 'Jobs',
    34      render: () => <Jobs />,
    35      params: {},
    36    }),
    37    '/jobs/:id': ({id}) => ({
    38      id: 'jobs.page',
    39      title: (
    40        <span>
    41          <A href="/jobs">All Jobs</A> : Job {id}
    42        </span>
    43      ),
    44      render: () => <Job id={ id } />,
    45      params: {},
    46    }),
    47  }
    48  
    49  export default routes