on c19b2a8 help sign in
bridge/src/views/Admin/AdminReticket.js
62 lines 1.6 kB history raw
1import React, { useCallback, useState } from 'react';
2import { Just, Nothing } from 'folktale/maybe';
3import { Grid, Flex } from 'indigo-react';
5import { LocalRouterProvider } from 'lib/LocalRouter';
6import useRouter from 'lib/useRouter';
8import Steps from 'components/Steps';
10import ReticketConfirm from './Reticket/ReticketConfirm';
11import ReticketDownload from './Reticket/ReticketDownload';
12import ReticketVerify from './Reticket/ReticketVerify';
13import ReticketExecute from './Reticket/ReticketExecute';
15const NAMES = {
16 CONFIRM: 'CONFIRM',
17 DOWNLOAD: 'DOWNLOAD',
18 VERIFY: 'VERIFY',
19 EXECUTE: 'EXECUTE',
20};
22const VIEWS = {
23 CONFIRM: ReticketConfirm,
24 DOWNLOAD: ReticketDownload,
25 VERIFY: ReticketVerify,
26 EXECUTE: ReticketExecute,
27};
29const STEPS = [NAMES.CONFIRM, NAMES.DOWNLOAD, NAMES.VERIFY, NAMES.RETICKET];
31export default function AdminReticket() {
32 const { Route, ...router } = useRouter({
33 names: NAMES,
34 views: VIEWS,
35 initialRoutes: [{ key: NAMES.CONFIRM }],
36 });
38 const [newWallet, _setNewWallet] = useState(Nothing());
40 const setNewWallet = useCallback(
41 (wallet, paper) => {
42 _setNewWallet(
43 Just({
44 wallet,
45 paper,
46 })
47 );
48 },
49 [_setNewWallet]
50 );
52 return (
53 <LocalRouterProvider value={router}>
54 <Grid>
55 <Grid.Item full as={Flex} row align="center">
56 <Flex.Item as={Steps} num={router.size} total={STEPS.length} />
57 </Grid.Item>
58 </Grid>
59 <Route newWallet={newWallet} setNewWallet={setNewWallet} />
60 </LocalRouterProvider>
61 );