on faa39fb help sign in
bridge/src/views/Point.js
62 lines 1.7 kB history raw
1import React, { useCallback } from 'react';
2import * as need from 'lib/need';
3import { Grid } from 'indigo-react';
5import { usePointCursor } from 'store/pointCursor';
6// import { usePointCache } from 'store/pointCache';
8import View from 'components/View';
9import Passport from 'components/Passport';
10import { ForwardButton } from 'components/Buttons';
12import useInvites from 'lib/useInvites';
13import useSyncPoint from 'lib/useSyncPoint';
14import { ROUTE_NAMES } from 'lib/routeNames';
16import { useHistory } from 'store/history';
17import FooterButton from 'components/FooterButton';
19export default function Point() {
20 const history = useHistory();
21 const { pointCursor } = usePointCursor();
22 // const { pointCache } = usePointCache();
24 const point = need.pointCursor(pointCursor);
26 // fetch the invites for the current cursor
27 const { availableInvites } = useInvites(point);
29 const goInvite = useCallback(() => history.push(ROUTE_NAMES.INVITE), [
30 history,
31 ]);
33 // sync the current cursor
34 useSyncPoint(point);
36 // const pointDetails = need.fromPointCache(pointCache, point);
38 return (
39 <View>
40 <Passport point={point} />
41 <Grid className="pt2">
42 <Grid.Item full>
43 <ForwardButton disabled>Admin</ForwardButton>
44 </Grid.Item>
45 <Grid.Divider />
46 <Grid.Item full>
47 <ForwardButton detail="Boot your computer" disabled>
48 Boot Arvo
49 </ForwardButton>
50 </Grid.Item>
51 </Grid>
53 <FooterButton onClick={goInvite}>
54 Invite
55 {availableInvites.matchWith({
56 Nothing: () => null,
57 Just: p => <sup className="ml1">{p.value}</sup>,
58 })}
59 </FooterButton>
60 </View>
61 );