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