on f9d545d help sign in
bridge/src/views/ViewPoint.js
54 lines 1.5 kB history raw
1import React, { useCallback } from 'react';
2import { Just } from 'folktale/maybe';
3import { Input, Grid, Text } from 'indigo-react';
5import { useHistory } from 'store/history';
6import { usePointCursor } from 'store/pointCursor';
8import patp2dec from 'lib/patp2dec';
9import { usePointInput } from 'lib/useInputs';
11import View from 'components/View';
12import { ForwardButton } from 'components/Buttons';
13import ViewHeader from 'components/ViewHeader';
15export default function ViewPoint() {
16 const { pop, popAndPush, names } = useHistory();
17 const { setPointCursor } = usePointCursor();
18 const [pointInput, { data: pointName, pass }] = usePointInput({
19 name: 'point',
20 autoFocus: true,
21 });
23 const disabled = !pass;
24 const goForward = useCallback(() => {
25 setPointCursor(Just(patp2dec(pointName)));
26 popAndPush(names.POINT);
27 }, [setPointCursor, pointName, popAndPush, names.POINT]);
29 return (
30 <View pop={pop} inset>
31 <Grid>
32 <Grid.Item full as={ViewHeader}>
33 View a Point
34 </Grid.Item>
36 <Grid.Item full as={Text}>
37 Enter a point name to view its public information.
38 </Grid.Item>
40 <Grid.Item full as={Input} {...pointInput} onEnter={goForward} />
42 <Grid.Item
43 full
44 as={ForwardButton}
45 className="mt3"
46 disabled={disabled}
47 onClick={goForward}
48 solid>
49 Continue
50 </Grid.Item>
51 </Grid>
52 </View>
53 );