on bd2bfea help sign in
bridge/src/views/UrbitOS.js
65 lines 1.7 kB history raw
1import React, { useState } from 'react';
2import { Grid } from 'indigo-react';
4import { useHistory } from 'store/history';
6import useCurrentPointName from 'lib/useCurrentPointName';
7import useRouter from 'lib/useRouter';
8import { LocalRouterProvider } from 'lib/LocalRouter';
10import View from 'components/View';
11import Crumbs from 'components/Crumbs';
12import NavHeader from 'components/NavHeader';
14import UrbitOSHome from './UrbitOS/Home';
15import UrbitOSNetworkingKeys from './UrbitOS/NetworkingKeys';
16import UrbitOSChangeSponsor from './UrbitOS/ChangeSponsor';
18const NAMES = {
19 HOME: 'HOME',
20 CHANGE_SPONSOR: 'CHANGE_SPONSOR',
21 NETWORKING_KEYS: 'NETWORKING_KEYS',
22};
24const VIEWS = {
25 [NAMES.HOME]: UrbitOSHome,
26 [NAMES.CHANGE_SPONSOR]: UrbitOSChangeSponsor,
27 [NAMES.NETWORKING_KEYS]: UrbitOSNetworkingKeys,
28};
30export default function UrbitOS() {
31 const history = useHistory();
32 const name = useCurrentPointName();
34 const { Route, ...router } = useRouter({
35 names: NAMES,
36 views: VIEWS,
37 initialRoutes: [{ key: NAMES.HOME }],
38 });
40 const [manualNetworkSeed, setManualNetworkSeed] = useState();
42 return (
43 <View
44 pop={() =>
45 router.peek().key === NAMES.HOME ? history.pop() : router.pop()
46 }
47 inset>
48 <NavHeader>
49 <Crumbs
50 routes={[
51 { text: name, action: () => history.pop() },
52 { text: 'Urbit OS' },
53 ]}
54 />
55 </NavHeader>
56 <LocalRouterProvider value={router}>
57 <Grid className="mb4"></Grid>
58 <Route
59 manualNetworkSeed={manualNetworkSeed}
60 setManualNetworkSeed={setManualNetworkSeed}
61 />
62 </LocalRouterProvider>
63 </View>
64 );