on master help sign in
Add admin page
commit1cfc674825b58f3ffc3fa469a833e305a935da0c authorFang <git@fang.io> dateFri 28 Jun 2019, 15:19 (7 years ago) parent01c95c6
4 files changed+65−1
src/lib/routeNames.js+1 src/lib/router.js+4 src/views/Admin.js+57 src/views/Point.js+3−1
src/lib/routeNames.js+1
@@ -7,6 +7,7 @@ export const ROUTE_NAMES = {
77 INVITES_MANAGE: Symbol('INVITES_MANAGE'),
88 //
99 LOGIN: Symbol('LOGIN'),
10+ ADMIN: Symbol('ADMIN'),
1011 //
1112 ACCEPT_TRANSFER: Symbol('ACCEPT_TRANSFER'),
1213 CANCEL_TRANSFER: Symbol('CANCEL_TRANSFER'),
src/lib/router.js+4
@@ -5,6 +5,7 @@ import Landing from '../views/Landing';
55import Login from '../views/Login.js';
66import InviteTicket from '../views/InviteTicket';
77import InvitesManage from '../views/InvitesManage.js';
8+import Admin from '../views/Admin';
89import AcceptTransfer from '../views/AcceptTransfer';
910import CancelTransfer from '../views/CancelTransfer';
1011import CreateGalaxy from '../views/CreateGalaxy';
@@ -32,6 +33,7 @@ export const ROUTES = {
3233 [ROUTE_NAMES.INVITE]: Invite,
3334 [ROUTE_NAMES.INVITES_MANAGE]: InvitesManage,
3435 [ROUTE_NAMES.LOGIN]: Login,
36+ [ROUTE_NAMES.ADMIN]: Admin,
3537 [ROUTE_NAMES.ACCEPT_TRANSFER]: AcceptTransfer,
3638 [ROUTE_NAMES.CANCEL_TRANSFER]: CancelTransfer,
3739 [ROUTE_NAMES.VIEW_POINT]: ViewPoint,
@@ -60,6 +62,8 @@ export const getRouteBreadcrumb = ({ pointCursor }) => route => {
6062 return 'Manage invites';
6163 case ROUTE_NAMES.LOGIN:
6264 return 'Login to Bridge';
65+ case ROUTE_NAMES.ADMIN:
66+ return 'Admin';
6367 case ROUTE_NAMES.POINT:
6468 return `Overview: ${ob.patp(need.pointCursor(pointCursor))}`;
6569 case ROUTE_NAMES.POINTS:
src/views/Admin.jsnew file+57
@@ -0,0 +1,57 @@
1+import React, { useCallback } from 'react';
2+import * as need from 'lib/need';
3+import { Grid } from 'indigo-react';
4+
5+import { usePointCursor } from 'store/pointCursor';
6+// import { usePointCache } from 'store/pointCache';
7+
8+import View from 'components/View';
9+import Passport from 'components/Passport';
10+import { ForwardButton } from 'components/Buttons';
11+
12+import useInvites from 'lib/useInvites';
13+import { ROUTE_NAMES } from 'lib/routeNames';
14+
15+import { useHistory } from 'store/history';
16+import FooterButton from 'components/FooterButton';
17+
18+export default function Admin() {
19+ const history = useHistory();
20+ const { pointCursor } = usePointCursor();
21+ // const { pointCache } = usePointCache();
22+
23+ const point = need.pointCursor(pointCursor);
24+
25+ // fetch the invites for the current cursor
26+ const { availableInvites } = useInvites(point);
27+
28+ const goReticket = useCallback(() => history.push(ROUTE_NAMES.RETICKET), [
29+ history,
30+ ]);
31+
32+ // const pointDetails = need.fromPointCache(pointCache, point);
33+
34+ return (
35+ <View>
36+ <Grid className="pt2">
37+ <Grid.Item full>
38+ //TODO "Set Keys" when unset?
39+ <ForwardButton detail="Configure public keys">
40+ Edit Keys
41+ </ForwardButton>
42+ </Grid.Item>
43+ <Grid.Divider />
44+ <Grid.Item full>
45+ //TODO disable if not logged in as owner
46+ <ForwardButton detail="Get a new master ticket" onClick={goReticket}>
47+ Reticket
48+ </ForwardButton>
49+ </Grid.Item>
50+ </Grid>
51+
52+ <FooterButton detail="Transfer this identity to a new owner" disabled>
53+ Transfer
54+ </FooterButton>
55+ </View>
56+ );
57+}
src/views/Point.js+3−1
@@ -32,6 +32,8 @@ export default function Point() {
3232
3333 const showActions = Maybe.Just.hasInstance(wallet);
3434
35+ const goAdmin = useCallback(() => history.push(ROUTE_NAMES.ADMIN), [history]);
36+
3537 const goInvite = useCallback(() => history.push(ROUTE_NAMES.INVITE), [
3638 history,
3739 ]);
@@ -44,7 +46,7 @@ export default function Point() {
4446 <Passport point={point} />
4547 <Grid className="pt2">
4648 <Grid.Item full>
47− <ForwardButton disabled>Admin</ForwardButton>
49+ <ForwardButton onClick={goAdmin}>Admin</ForwardButton>
4850 </Grid.Item>
4951 <Grid.Divider />
5052 <Grid.Item full>