ohif-viewer/platform/viewer/src/routes/index.js
2020-06-26 14:47:18 -03:00

68 lines
1.6 KiB
JavaScript

import React from 'react';
import { Switch, Route } from 'react-router-dom';
// Route Components
import DataSourceWrapper from './DataSourceWrapper';
import WorkList from './WorkList';
import NotFound from './NotFound';
import buildModeRoutes from './buildModeRoutes';
import { ErrorBoundary } from '@ohif/ui';
// TODO: Make these configurable
// TODO: Include "routes" debug route if dev build
const bakedInRoutes = [
// WORK LIST
{
path: '/',
exact: true,
component: DataSourceWrapper,
props: { children: WorkList },
},
// NOT FOUND (404)
{ component: NotFound },
];
const createRoutes = (
modes,
dataSources,
extensionManager,
servicesManager
) => {
const routes =
buildModeRoutes(modes, dataSources, extensionManager, servicesManager) ||
[];
const allRoutes = [...routes, ...bakedInRoutes];
console.log(
'Creating Routes: ',
modes,
dataSources,
routes,
bakedInRoutes,
allRoutes
);
return (
<Switch>
{allRoutes.map((route, i) => {
console.log(route);
return (
<Route
key={i}
path={route.path}
exact={route.exact}
strict={route.strict}
render={props => (
// eslint-disable-next-line react/jsx-props-no-spreading
<ErrorBoundary context={`Route ${route.path}`} fallbackRoute="/">
<route.component {...props} {...route.props} route={route} />
</ErrorBoundary>
)}
/>
);
})}
</Switch>
);
};
export default createRoutes;