@@ -1,182 +1,140 @@
1−import * as ob from 'urbit-ob';
2−import * as need from '../lib/need';
1+import React from "react";
2+import * as ob from "urbit-ob";
3+import * as need from "../lib/need";
34
4−import React from 'react';
5−
6−import Landing from '../views/Landing';
7−
8−import InviteTicket from '../views/InviteTicket';
9−
10−import InvitesSend from '../views/InvitesSend.js';
11−import InvitesManage from '../views/InvitesManage.js';
12−
13−import AcceptTransfer from '../views/AcceptTransfer';
14−import CancelTransfer from '../views/CancelTransfer';
15−import CreateGalaxy from '../views/CreateGalaxy';
16−import GenKeyfile from '../views/GenKeyfile';
17−import IssueChild from '../views/IssueChild';
18−import Network from '../views/Network';
19−import Mnemonic from '../views/Mnemonic';
20−import Ledger from '../views/Ledger';
21−import Trezor from '../views/Trezor';
22−import PrivateKey from '../views/PrivateKey';
23−import Keystore from '../views/Keystore';
24−import ViewPoint from '../views/ViewPoint';
25−import SentTransaction from '../views/SentTransaction';
26−import SetKeys from '../views/SetKeys';
5+import Landing from "../views/Landing";
6+import InviteTicket from "../views/InviteTicket";
7+import InvitesSend from "../views/InvitesSend.js";
8+import InvitesManage from "../views/InvitesManage.js";
9+import AcceptTransfer from "../views/AcceptTransfer";
10+import CancelTransfer from "../views/CancelTransfer";
11+import CreateGalaxy from "../views/CreateGalaxy";
12+import GenKeyfile from "../views/GenKeyfile";
13+import IssueChild from "../views/IssueChild";
14+import Network from "../views/Network";
15+import Mnemonic from "../views/Mnemonic";
16+import Ledger from "../views/Ledger";
17+import Trezor from "../views/Trezor";
18+import PrivateKey from "../views/PrivateKey";
19+import Keystore from "../views/Keystore";
20+import ViewPoint from "../views/ViewPoint";
21+import SentTransaction from "../views/SentTransaction";
22+import SetKeys from "../views/SetKeys";
2723import {
2824 SetManagementProxy,
2925 SetSpawnProxy,
3026 SetTransferProxy,
31−} from '../views/SetProxy';
32−import Point from '../views/Point';
33−import Points from '../views/Points';
34−import Shards from '../views/Shards';
35−import Ticket from '../views/Ticket';
36−import Transfer from '../views/Transfer';
37−import Wallet from '../views/Wallet';
27+} from "../views/SetProxy";
28+import Point from "../views/Point";
29+import Points from "../views/Points";
30+import Shards from "../views/Shards";
31+import Ticket from "../views/Ticket";
32+import Transfer from "../views/Transfer";
33+import Wallet from "../views/Wallet";
3834
39−import { EthereumWallet } from './wallet';
40−import { renderNetworkType } from './network';
35+import { EthereumWallet } from "./wallet";
36+import { renderNetworkType } from "./network";
37+import { ROUTE_NAMES } from "./routeNames";
4138
42−const ROUTE_NAMES = {
43− DEFAULT: Symbol('DEFAULT'),
44− //
45− INVITE_TICKET: Symbol('INVITE_TICKET'),
46− INVITE_TRANSACTIONS: Symbol('INVITE_TRANSACTIONS'),
47− INVITES_SEND: Symbol('INVITES_SEND'),
48− INVITES_MANAGE: Symbol('INVITES_MANAGE'),
49− //
50− ACCEPT_TRANSFER: Symbol('ACCEPT_TRANSFER'),
51− CANCEL_TRANSFER: Symbol('CANCEL_TRANSFER'),
52− LANDING: Symbol('LANDING'),
53− NETWORK: Symbol('NETWORK'),
54− WALLET: Symbol('WALLET'),
55− MNEMONIC: Symbol('MNEMONIC'),
56− TICKET: Symbol('TICKET'),
57− SHARDS: Symbol('SHARDS'),
58− LEDGER: Symbol('LEDGER'),
59− TREZOR: Symbol('TREZOR'),
60− PRIVATE_KEY: Symbol('PRIVATE_KEY'),
61− KEYSTORE: Symbol('KEYSTORE'),
62− VIEW_SHIP: Symbol('VIEW_SHIP'),
63− SHIPS: Symbol('SHIPS'),
64− SHIP: Symbol('SHIP'),
65− SET_MANAGEMENT_PROXY: Symbol('SET_MANAGEMENT_PROXY'),
66− SET_SPAWN_PROXY: Symbol('SET_SPAWN_PROXY'),
67− SET_TRANSFER_PROXY: Symbol('SET_TRANSFER_PROXY'),
68− CREATE_GALAXY: Symbol('CREATE_GALAXY'),
69− ISSUE_CHILD: Symbol('ISSUE_CHILD'),
70− SET_KEYS: Symbol('SET_KEYS'),
71− TRANSFER: Symbol('TRANSFER'),
72− SENT_TRANSACTION: Symbol('SENT_TRANSACTION'),
73− GEN_KEYFILE: Symbol('GEN_KEYFILE'),
39+const ROUTES = {
40+ [ROUTE_NAMES.DEFAULT]: Landing,
41+ [ROUTE_NAMES.LANDING]: Landing,
42+ [ROUTE_NAMES.INVITE_TICKET]: InviteTicket,
43+ [ROUTE_NAMES.INVITES_SEND]: InvitesSend,
44+ [ROUTE_NAMES.INVITES_MANAGE]: InvitesManage,
45+ [ROUTE_NAMES.ACCEPT_TRANSFER]: AcceptTransfer,
46+ [ROUTE_NAMES.CANCEL_TRANSFER]: CancelTransfer,
47+ [ROUTE_NAMES.NETWORK]: Network,
48+ [ROUTE_NAMES.WALLET]: Wallet,
49+ [ROUTE_NAMES.VIEW_SHIP]: ViewPoint,
50+ [ROUTE_NAMES.MNEMONIC]: Mnemonic,
51+ [ROUTE_NAMES.TICKET]: Ticket,
52+ [ROUTE_NAMES.SHARDS]: Shards,
53+ [ROUTE_NAMES.LEDGER]: Ledger,
54+ [ROUTE_NAMES.TREZOR]: Trezor,
55+ [ROUTE_NAMES.PRIVATE_KEY]: PrivateKey,
56+ [ROUTE_NAMES.KEYSTORE]: Keystore,
57+ [ROUTE_NAMES.SHIPS]: Points,
58+ [ROUTE_NAMES.SHIP]: Point,
59+ [ROUTE_NAMES.SET_MANAGEMENT_PROXY]: SetManagementProxy,
60+ [ROUTE_NAMES.SET_SPAWN_PROXY]: SetSpawnProxy,
61+ [ROUTE_NAMES.SET_TRANSFER_PROXY]: SetTransferProxy,
62+ [ROUTE_NAMES.CREATE_GALAXY]: CreateGalaxy,
63+ [ROUTE_NAMES.ISSUE_CHILD]: IssueChild,
64+ [ROUTE_NAMES.SET_KEYS]: SetKeys,
65+ [ROUTE_NAMES.TRANSFER]: Transfer,
66+ [ROUTE_NAMES.SENT_TRANSACTION]: SentTransaction,
67+ [ROUTE_NAMES.GEN_KEYFILE]: GenKeyfile,
7468};
7569
76−const createRoutes = () => {
77− const routes = {};
78− routes[ROUTE_NAMES.DEFAULT] = Landing;
79− //
80− routes[ROUTE_NAMES.INVITE_TICKET] = InviteTicket;
81− routes[ROUTE_NAMES.INVITES_SEND] = InvitesSend;
82− routes[ROUTE_NAMES.INVITES_MANAGE] = InvitesManage;
83− //
84− routes[ROUTE_NAMES.ACCEPT_TRANSFER] = AcceptTransfer;
85− routes[ROUTE_NAMES.CANCEL_TRANSFER] = CancelTransfer;
86− routes[ROUTE_NAMES.LANDING] = Landing;
87− routes[ROUTE_NAMES.NETWORK] = Network;
88− routes[ROUTE_NAMES.WALLET] = Wallet;
89− routes[ROUTE_NAMES.VIEW_SHIP] = ViewPoint;
90− routes[ROUTE_NAMES.MNEMONIC] = Mnemonic;
91− routes[ROUTE_NAMES.TICKET] = Ticket;
92− routes[ROUTE_NAMES.SHARDS] = Shards;
93− routes[ROUTE_NAMES.LEDGER] = Ledger;
94− routes[ROUTE_NAMES.TREZOR] = Trezor;
95− routes[ROUTE_NAMES.PRIVATE_KEY] = PrivateKey;
96− routes[ROUTE_NAMES.KEYSTORE] = Keystore;
97− routes[ROUTE_NAMES.SHIPS] = Points;
98− routes[ROUTE_NAMES.SHIP] = Point;
99− routes[ROUTE_NAMES.SET_MANAGEMENT_PROXY] = SetManagementProxy;
100− routes[ROUTE_NAMES.SET_SPAWN_PROXY] = SetSpawnProxy;
101− routes[ROUTE_NAMES.SET_TRANSFER_PROXY] = SetTransferProxy;
102− routes[ROUTE_NAMES.CREATE_GALAXY] = CreateGalaxy;
103− routes[ROUTE_NAMES.ISSUE_CHILD] = IssueChild;
104− routes[ROUTE_NAMES.SET_KEYS] = SetKeys;
105− routes[ROUTE_NAMES.TRANSFER] = Transfer;
106− routes[ROUTE_NAMES.SENT_TRANSACTION] = SentTransaction;
107− routes[ROUTE_NAMES.GEN_KEYFILE] = GenKeyfile;
108− return routes;
109−};
110−
111−const ROUTES = createRoutes();
112−
113−const renderRoute = (props, route) => {
70+export const getRouteBreadcrumb = (props, route) => {
11471 const { wallet, networkType } = props;
115− return route === ROUTE_NAMES.LANDING
116− ? 'Bridge'
117− : route === ROUTE_NAMES.INVITE_TICKET
118− ? 'Invite code'
119− : route === ROUTE_NAMES.INVITE_TRANSACTIONS
120− ? 'Setting up new wallet'
121− : route === ROUTE_NAMES.INVITES_SEND
122− ? 'Send invites'
123− : route === ROUTE_NAMES.INVITES_MANAGE
124− ? 'Manage invites'
125− : route === ROUTE_NAMES.NETWORK
126− ? `${renderNetworkType(networkType)}`
127− : route === ROUTE_NAMES.WALLET
128− ? wallet.matchWith({
129− Nothing: () => 'Wallet',
72+
73+ switch (route.name) {
74+ case ROUTE_NAMES.INVITE_TICKET:
75+ return "Invite code";
76+ case ROUTE_NAMES.INVITE_TRANSACTIONS:
77+ return "Setting up new wallet";
78+ case ROUTE_NAMES.INVITES_SEND:
79+ return "Send invites";
80+ case ROUTE_NAMES.INVITES_MANAGE:
81+ return "Manage invites";
82+ case ROUTE_NAMES.NETWORK:
83+ return `${renderNetworkType(networkType)}`;
84+ case ROUTE_NAMES.WALLET:
85+ return wallet.matchWith({
86+ Nothing: () => "Wallet",
13087 Just: wal =>
13188 wal.value instanceof EthereumWallet ? (
13289 <span className="text-mono">{wal.value.address}</span>
13390 ) : (
13491 <span className="text-mono">{wal.value.address}</span>
13592 ),
136− })
137− : route === ROUTE_NAMES.MNEMONIC
138− ? 'Mnemonic'
139− : route === ROUTE_NAMES.TICKET
140− ? 'Urbit Ticket'
141− : route === ROUTE_NAMES.SHARDS
142− ? 'Urbit Ticket'
143− : route === ROUTE_NAMES.LEDGER
144− ? 'Ledger'
145− : route === ROUTE_NAMES.TREZOR
146− ? 'Trezor'
147− : route === ROUTE_NAMES.PRIVATE_KEY
148− ? 'Private Key'
149− : route === ROUTE_NAMES.KEYSTORE
150− ? 'Keystore File'
151− : route === ROUTE_NAMES.SHIPS
152− ? 'Points'
153− : route === ROUTE_NAMES.VIEW_SHIP
154− ? 'View'
155− : route === ROUTE_NAMES.SHIP
156− ? ob.patp(need.pointCursor(props))
157− : route === ROUTE_NAMES.SET_TRANSFER_PROXY ||
158− route === ROUTE_NAMES.SET_MANAGEMENT_PROXY ||
159− route === ROUTE_NAMES.SET_SPAWN_PROXY
160− ? 'Set Proxy'
161− : route === ROUTE_NAMES.CREATE_GALAXY
162− ? 'Create Galaxy'
163− : route === ROUTE_NAMES.ISSUE_CHILD
164− ? 'Issue Child'
165− : route === ROUTE_NAMES.TRANSFER
166− ? 'Transfer'
167− : route === ROUTE_NAMES.ACCEPT_TRANSFER
168− ? 'Accept Transfer'
169− : route === ROUTE_NAMES.CANCEL_TRANSFER
170− ? 'Cancel Transfer'
171− : route === ROUTE_NAMES.GEN_KEYFILE
172− ? 'Keyfile'
173− : route === ROUTE_NAMES.SET_KEYS
174− ? 'Configure Keys'
175− : route === ROUTE_NAMES.SENT_TRANSACTION
176− ? 'Txn'
177− : 'Bridge';
93+ });
94+ case ROUTE_NAMES.MNEMONIC:
95+ return "Mnemonic";
96+ case ROUTE_NAMES.TICKET:
97+ return "Urbit Ticket";
98+ case ROUTE_NAMES.SHARDS:
99+ return "Urbit Ticket";
100+ case ROUTE_NAMES.LEDGER:
101+ return "Ledger";
102+ case ROUTE_NAMES.TREZOR:
103+ return "Trezor";
104+ case ROUTE_NAMES.PRIVATE_KEY:
105+ return "Private Key";
106+ case ROUTE_NAMES.KEYSTORE:
107+ return "Keystore File";
108+ case ROUTE_NAMES.SHIPS:
109+ return "Points";
110+ case ROUTE_NAMES.VIEW_SHIP:
111+ return "View";
112+ case ROUTE_NAMES.SHIP:
113+ return ob.patp(need.pointCursor(props));
114+ case ROUTE_NAMES.SET_TRANSFER_PROXY:
115+ case ROUTE_NAMES.SET_MANAGEMENT_PROXY:
116+ case ROUTE_NAMES.SET_SPAWN_PROXY:
117+ return "Set Proxy";
118+ case ROUTE_NAMES.CREATE_GALAXY:
119+ return "Create Galaxy";
120+ case ROUTE_NAMES.ISSUE_CHILD:
121+ return "Issue Child";
122+ case ROUTE_NAMES.TRANSFER:
123+ return "Transfer";
124+ case ROUTE_NAMES.ACCEPT_TRANSFER:
125+ return "Accept Transfer";
126+ case ROUTE_NAMES.CANCEL_TRANSFER:
127+ return "Cancel Transfer";
128+ case ROUTE_NAMES.GEN_KEYFILE:
129+ return "Keyfile";
130+ case ROUTE_NAMES.SET_KEYS:
131+ return "Configure Keys";
132+ case ROUTE_NAMES.SENT_TRANSACTION:
133+ return "Txn";
134+ case ROUTE_NAMES.LANDING:
135+ default:
136+ return "Bridge";
137+ }
178138};
179139
180−const router = route => ROUTES[route];
181−
182−export { ROUTE_NAMES, router, renderRoute };
140+export const router = route => ROUTES[route.name];