summaryrefslogtreecommitdiff
path: root/src/lib/Service.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Service.tsx')
-rw-r--r--src/lib/Service.tsx25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/lib/Service.tsx b/src/lib/Service.tsx
new file mode 100644
index 0000000..b527531
--- /dev/null
+++ b/src/lib/Service.tsx
@@ -0,0 +1,25 @@
+import React, { useContext } from 'react';
+import { Route, Switch, useRouteMatch } from 'react-router-dom';
+import _ from 'lodash';
+import ServiceList from './ServiceList';
+import ServiceItem from './ServiceItem';
+import ServiceContext from './ServiceContext';
+
+
+const Service: React.FC = () => {
+ const { path } = useRouteMatch();
+ const service = useContext(ServiceContext);
+
+ return (
+ <Switch>
+ <Route exact path={path} component={ServiceList} />
+ <Route path={`${path}/add`} component={ServiceItem} />
+ {_.map(service.routes, (component, route) => (
+ <Route path={`${path}/${route}`} component={component} key={route} />
+ ))}
+ <Route path={`${path}/:id`} component={ServiceItem} />
+ </Switch>
+ );
+};
+
+export default Service;