on master help sign in
bridge/src/views/Point/UrbitOS.jsx
61 lines 1.5 kB history raw
1import React, { useState } from 'react';
3import { useHistory } from 'store/history';
5import useRouter from 'lib/useRouter';
6import { LocalRouterProvider } from 'lib/LocalRouter';
8import View from 'components/View';
9import L2BackHeader from 'components/L2/Headers/L2BackHeader';
11import UrbitOSHome from '../UrbitOS/Home';
12import UrbitOSNetworkKeys from '../UrbitOS/NetworkKeys.tsx';
13import UrbitOSChangeSponsor from '../UrbitOS/ChangeSponsor.tsx';
15const NAMES = {
16 HOME: 'HOME',
17 CHANGE_SPONSOR: 'CHANGE_SPONSOR',
18 NETWORKING_KEYS: 'NETWORKING_KEYS',
19};
21const VIEWS = {
22 [NAMES.HOME]: UrbitOSHome,
23 [NAMES.CHANGE_SPONSOR]: UrbitOSChangeSponsor,
24 [NAMES.NETWORKING_KEYS]: UrbitOSNetworkKeys,
25};
27export default function UrbitOS() {
28 const history = useHistory();
30 const { Route, ...router } = useRouter({
31 names: NAMES,
32 views: VIEWS,
33 initialRoutes: [{ key: NAMES.HOME }],
34 });
36 const [manualNetworkSeed, setManualNetworkSeed] = useState();
38 const onBack = () =>
39 router.peek().key === NAMES.HOME ? history.pop() : router.pop();
41 return (
42 <View
43 pop={onBack}
44 inset
45 hideBack
46 header={
47 <L2BackHeader
48 hideBalance={router.peek().key === NAMES.HOME}
49 back={onBack}
50 />
51 }
52 className="urbit-id">
53 <LocalRouterProvider value={router}>
54 <Route
55 manualNetworkSeed={manualNetworkSeed}
56 setManualNetworkSeed={setManualNetworkSeed}
57 />
58 </LocalRouterProvider>
59 </View>
60 );