on 4b0ca21 help sign in
bridge/src/views/Release.js
89 lines 2.2 kB history raw
1import React, { useState, useCallback } from 'react';
2import { H1, Grid } from 'indigo-react';
3import { Just } from 'folktale/maybe';
5import * as need from 'lib/need';
7import { useHistory } from 'store/history';
8import { useWallet } from 'store/wallet';
9import { usePointCursor } from 'store/pointCursor';
11import View from 'components/View';
12import Tabs from 'components/Tabs';
13import CopiableAddress from 'components/CopiableAddress';
15import Active from 'views/Release/Active';
16import Locked from 'views/Release/Locked';
17import Transfer from 'views/Release/Transfer';
18import NavHeader from 'components/NavHeader';
20const NAMES = {
21 ACTIVE: 'ACTIVE',
22 LOCKED: 'LOCKED',
23 TRANSFER: 'TRANSFER',
24};
26const VIEWS = {
27 [NAMES.ACTIVE]: Active,
28 [NAMES.LOCKED]: Locked,
29 [NAMES.TRANSFER]: Transfer,
30};
31const OPTIONS = [
32 { text: 'Active', value: NAMES.ACTIVE },
33 { text: 'Locked', value: NAMES.LOCKED },
34 { text: 'Transfer', value: NAMES.TRANSFER },
35];
36export default function ReleaseView() {
37 const { pop, push, names } = useHistory();
38 const { wallet } = useWallet();
40 const { setPointCursor } = usePointCursor();
42 const goPoint = useCallback(
43 point => {
44 setPointCursor(Just(point));
46 push(names.POINT);
47 },
48 [push, names, setPointCursor]
49 );
50 // inputs
51 const [currentTab, setCurrentTab] = useState(NAMES.ACTIVE);
53 const goActive = useCallback(() => {
54 setCurrentTab(NAMES.ACTIVE);
55 }, [setCurrentTab]);
57 const address = need.addressFromWallet(wallet);
59 return (
60 <View pop={pop} inset>
61 <NavHeader>
62 <CopiableAddress
63 className="f6 mono gray4 us-none pointer"
64 text={address}>
65 {address}
66 </CopiableAddress>
67 </NavHeader>
68 <Grid>
69 <Grid.Item full as={H1}></Grid.Item>
71 <Grid.Item
72 full
73 as={Tabs}
74 className="mt1"
75 // Tabs
76 views={VIEWS}
77 options={OPTIONS}
78 currentTab={currentTab}
79 onTabChange={setCurrentTab}
80 // Tab extra
81 goPoint={goPoint}
82 goActive={goActive}
83 //
84 //
85 />
86 </Grid>
87 </View>
88 );