on df0c310 help sign in
bridge/src/views/Point/UrbitID.jsx
62 lines 1.6 kB history raw
1import React from 'react';
3import { useHistory } from 'store/history';
4import { useRollerStore } from 'store/rollerStore';
6import useRouter from 'lib/useRouter';
7import { LocalRouterProvider } from 'lib/LocalRouter';
9import View from 'components/View';
10import L2BackHeader from 'components/L2/Headers/L2BackHeader';
12import UrbitIDHome from '../UrbitID/Home';
13import SigilGenerator from '../UrbitID/SigilGenerator';
14import DownloadKeys from '../UrbitID/DownloadKeys';
15import SetProxy from '../UrbitID/SetProxy';
16import ResetKeys from '../UrbitID/ResetKeys';
17import Transfer from '../UrbitID/Transfer.tsx';
19const NAMES = {
20 HOME: 'HOME',
21 SIGIL_GENERATOR: 'SIGIL_GENERATOR',
22 DOWNLOAD_KEYS: 'DOWNLOAD_KEYS',
23 SET_PROXY: 'SET_PROXY',
24 RESET_KEYS: 'RESET_KEYS',
25 TRANSFER: 'TRANSFER',
26};
28const VIEWS = {
29 [NAMES.HOME]: UrbitIDHome,
30 [NAMES.SIGIL_GENERATOR]: SigilGenerator,
31 [NAMES.DOWNLOAD_KEYS]: DownloadKeys,
32 [NAMES.RESET_KEYS]: ResetKeys,
33 [NAMES.SET_PROXY]: SetProxy,
34 [NAMES.TRANSFER]: Transfer,
35};
37export default function UrbitID() {
38 const history = useHistory();
39 const { point } = useRollerStore();
41 const { Route, ...router } = useRouter({
42 names: NAMES,
43 views: VIEWS,
44 initialRoutes: [{ key: NAMES.HOME }],
45 });
47 const onBack = () =>
48 router.peek().key === NAMES.HOME ? history.pop() : router.pop();
50 return (
51 <View
52 pop={onBack}
53 inset
54 hideBack
55 header={<L2BackHeader hideBalance={point.isL2} back={onBack} />}
56 className="urbit-id">
57 <LocalRouterProvider value={router}>
58 <Route />
59 </LocalRouterProvider>
60 </View>
61 );