on dee2cd5 help sign in
bridge/src/views/Admin.js
67 lines 1.7 kB history raw
1import React from 'react';
2import { Grid } from 'indigo-react';
4import { useHistory } from 'store/history';
6import useCurrentPointName from 'lib/useCurrentPointName';
7import useRouter from 'lib/useRouter';
8import { LocalRouterProvider } from 'lib/LocalRouter';
10import View from 'components/View';
11import Crumbs from 'components/Crumbs';
13import AdminHome from './Admin/AdminHome';
14import AdminEditPermissions from './Admin/AdminEditPermissions';
15import AdminRedownload from './Admin/AdminRedownload';
16import AdminReticket from './Admin/AdminReticket';
17import AdminSetProxy from './Admin/AdminSetProxy';
19const NAMES = {
20 HOME: 'HOME',
21 EDIT_PERMISSIONS: 'EDIT_PERMISSIONS',
22 REDOWNLOAD: 'REDOWNLOAD',
23 RETICKET: 'RETICKET',
24 SET_PROXY: 'SET_PROXY',
25};
27const VIEWS = {
28 [NAMES.HOME]: AdminHome,
29 [NAMES.EDIT_PERMISSIONS]: AdminEditPermissions,
30 [NAMES.REDOWNLOAD]: AdminRedownload,
31 [NAMES.RETICKET]: AdminReticket,
32 [NAMES.SET_PROXY]: AdminSetProxy,
33};
35export default function Admin() {
36 const history = useHistory();
37 const name = useCurrentPointName();
39 const { Route, ...router } = useRouter({
40 names: NAMES,
41 views: VIEWS,
42 initialRoutes: [{ key: NAMES.HOME }],
43 });
45 return (
46 <LocalRouterProvider value={router}>
47 <View inset>
48 <Grid className="mb4">
49 <Grid.Item
50 as={Crumbs}
51 routes={[
52 {
53 text: name,
54 action: () => history.pop(),
55 },
56 {
57 text: 'Admin',
58 },
59 ]}
60 full
61 />
62 </Grid>
63 <Route />
64 </View>
65 </LocalRouterProvider>
66 );