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