on 8d566ea help sign in
bridge/src/views/Admin.js
73 lines 2.0 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 AdminReticket from './Admin/AdminReticket';
16import AdminSetProxy from './Admin/AdminSetProxy';
17import AdminTransfer from './Admin/AdminTransfer';
18import AdminCancelTransfer from './Admin/AdminCancelTransfer';
19import AdminNetworkingKeys from './Admin/AdminNetworkingKeys';
21const NAMES = {
22 HOME: 'HOME',
23 EDIT_PERMISSIONS: 'EDIT_PERMISSIONS',
24 RETICKET: 'RETICKET',
25 SET_PROXY: 'SET_PROXY',
26 TRANSFER: 'TRANSFER',
27 CANCEL_TRANSFER: 'CANCEL_TRANSFER',
28 NETWORKING_KEYS: 'NETWORKING_KEYS',
29};
31const VIEWS = {
32 [NAMES.HOME]: AdminHome,
33 [NAMES.EDIT_PERMISSIONS]: AdminEditPermissions,
34 [NAMES.RETICKET]: AdminReticket,
35 [NAMES.SET_PROXY]: AdminSetProxy,
36 [NAMES.TRANSFER]: AdminTransfer,
37 [NAMES.CANCEL_TRANSFER]: AdminCancelTransfer,
38 [NAMES.NETWORKING_KEYS]: AdminNetworkingKeys,
39};
41export default function Admin() {
42 const history = useHistory();
43 const name = useCurrentPointName();
45 const { Route, ...router } = useRouter({
46 names: NAMES,
47 views: VIEWS,
48 initialRoutes: [{ key: NAMES.HOME }],
49 });
51 return (
52 <View pop={router.pop} inset>
53 <LocalRouterProvider value={router}>
54 <Grid className="mb4">
55 <Grid.Item
56 full
57 as={Crumbs}
58 routes={[
59 {
60 text: name,
61 action: () => history.pop(),
62 },
63 {
64 text: 'Admin',
65 },
66 ]}
67 />
68 </Grid>
69 <Route />
70 </LocalRouterProvider>
71 </View>
72 );