joyent-portal/frontend/src/router.js
2017-05-23 17:23:37 +01:00

64 lines
2.4 KiB
JavaScript

import React from 'react';
import {
BrowserRouter,
Redirect,
Route,
Switch
} from 'react-router-dom';
import { Header } from '@components/navigation';
import { Breadcrumb, Menu } from '@containers/navigation';
import { DeploymentGroupList } from '@containers/deployment-groups';
import { ServiceList, ServicesTopology, ServicesMenu } from '@containers/services';
import { InstanceList } from '@containers/instances';
import { ServiceMetrics, SingleMetrics } from '@containers/service';
const rootRedirect = (p) => (
<Redirect to='/deployment-groups' />
);
const deploymentGroupRedirect = (p) => (
<Redirect to={`/deployment-groups/${p.match.params.deploymentGroup}/services-list`} />
);
const Router = (
<BrowserRouter>
<div>
<Route path='/' component={Header} />
<Switch>
<Route path='/deployment-groups/:deploymentGroup/services/:service' component={Breadcrumb} />
<Route path='/deployment-groups/:deploymentGroup' component={Breadcrumb} />
<Route path='/deployment-groups' component={Breadcrumb} />
</Switch>
<Switch>
<Route path='/deployment-groups/:deploymentGroup/services/:service' component={Menu} />
<Route path='/deployment-groups/:deploymentGroup' component={Menu} />
</Switch>
<Route path='/' exact component={rootRedirect} />
<Route path='/deployment-groups' exact component={DeploymentGroupList} />
<Route path='/deployment-groups/:deploymentGroup' exact component={deploymentGroupRedirect} />
<Route path='/deployment-groups/:deploymentGroup/services' exact component={deploymentGroupRedirect} />
<Route path={`/deployment-groups/:deploymentGroup/services-list`} exact component={ServicesMenu} />
<Route path='/deployment-groups/:deploymentGroup/services-list' exact component={ServiceList} />
<Route path={`/deployment-groups/:deploymentGroup/services-topology`} exact component={ServicesMenu} />
<Route path={`/deployment-groups/:deploymentGroup/services-topology`} exact component={ServicesTopology} />
<Route path='/deployment-groups/:deploymentGroup/services/:service/instances' exact component={InstanceList} />
<Route path='/deployment-groups/:deploymentGroup/services/:service/metrics' exact component={ServiceMetrics} />
<Route path='/deployment-groups/:deploymentGroup/services/:service/single-metrics' exact component={SingleMetrics} />
</div>
</BrowserRouter>
);
export default Router;