on ee01fbf help sign in
bridge/src/views/UrbitOS.js
56 lines 1.4 kB history raw
1import React 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';
13import UrbitOSHome from './UrbitOS/Home';
14import UrbitOSNetworkingKeys from './UrbitOS/NetworkingKeys';
15import UrbitOSChangeSponsor from './UrbitOS/ChangeSponsor';
17const NAMES = {
18 HOME: 'HOME',
19 CHANGE_SPONSOR: 'CHANGE_SPONSOR',
20 NETWORKING_KEYS: 'NETWORKING_KEYS',
21};
23const VIEWS = {
24 [NAMES.HOME]: UrbitOSHome,
25 [NAMES.CHANGE_SPONSOR]: UrbitOSChangeSponsor,
26 [NAMES.NETWORKING_KEYS]: UrbitOSNetworkingKeys,
27};
29export default function UrbitOS() {
30 const history = useHistory();
31 const name = useCurrentPointName();
33 const { Route, ...router } = useRouter({
34 names: NAMES,
35 views: VIEWS,
36 initialRoutes: [{ key: NAMES.HOME }],
37 });
39 return (
40 <View pop={router.pop} inset>
41 <LocalRouterProvider value={router}>
42 <Grid className="mb4">
43 <Grid.Item
44 full
45 as={Crumbs}
46 routes={[
47 { text: name, action: () => history.pop() },
48 { text: 'Urbit OS' },
49 ]}
50 />
51 </Grid>
52 <Route />
53 </LocalRouterProvider>
54 </View>
55 );