on master help sign in
- Update views/Wallet.js to use new dropdown code
3feb29dChris Johnson
src/bridge/views/Wallet.js+30−74
@@ -12,17 +12,8 @@ import { ROUTE_NAMES } from '../lib/router'
12import { WALLET_NAMES, renderWalletType } from '../lib/wallet'
12import { WALLET_NAMES, renderWalletType } from '../lib/wallet'
13
13
14class Wallet extends React.Component {
14class Wallet extends React.Component {
15−
16 constructor(props) {
15 constructor(props) {
17 super(props)
16 super(props)
18−
19− this.state = {
20− dropdownOpen: false
21− }
22−
23− this.toggle = this.toggle.bind(this)
24− this.close = this.close.bind(this)
25−
26 }
17 }
27
18
28 componentDidMount() {
19 componentDidMount() {
@@ -30,23 +21,38 @@ class Wallet extends React.Component {
30 setWallet(Maybe.Nothing())
21 setWallet(Maybe.Nothing())
31 }
22 }
32
23
33− toggle() {
24+ getWalletOptions() {
34− this.setState((state, _) => ({
25+ return [{
35− dropdownOpen: !state.dropdownOpen
26+ title: 'Urbit Master Ticket',
36− }))
27+ value: WALLET_NAMES.TICKET
28+ }, {
29+ title: 'Urbit Master Ticket (Shards)',
30+ value: WALLET_NAMES.SHARDS
37− }
31+ }, {
38−
32+ type: 'divider'
39− selectClose(f) {
33+ }, {
40− f()
34+ title: 'Ledger',
41− this.setState({ dropdownOpen: false })
35+ value: WALLET_NAMES.LEDGER
36+ }, {
37+ title: 'Trezor',
38+ value: WALLET_NAMES.TREZOR
39+ }, {
40+ type: 'divider'
42− }
41+ }, {
43−
42+ title: 'BIP39 Mnemonic',
44− close () {
43+ value: WALLET_NAMES.MNEMONIC
45− this.setState({ dropdownOpen: false })
44+ }, {
45+ title: 'Ethereum Private Key',
46+ value: WALLET_NAMES.PRIVATE_KEY
47+ }, {
48+ title: 'Ethereum Keystore File',
49+ value: WALLET_NAMES.KEYSTORE
50+ }, ]
46 }
51 }
47
52
48 render() {
53 render() {
49 const { props, state } = this
54 const { props, state } = this
55+ const walletOptions = this.getWalletOptions()
50
56
51 return (
57 return (
52 <Row>
58 <Row>
@@ -63,60 +69,10 @@ class Wallet extends React.Component {
63
69
64 <InnerLabelDropdown
70 <InnerLabelDropdown
65 className={'mb-10 mt-6'}
71 className={'mb-10 mt-6'}
66− handleToggle={this.toggle}
67− handleClose={this.close}
68− isOpen={state.dropdownOpen}
69 title={'Wallet Type:'}
72 title={'Wallet Type:'}
73+ options={walletOptions}
74+ handleUpdate={props.setWalletType}
70 currentSelectionTitle={renderWalletType(props.walletType)}>
75 currentSelectionTitle={renderWalletType(props.walletType)}>
71−
72− <DropdownItem
73− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.TICKET)) }
74− >
75− { 'Urbit Master Ticket' }
76− </DropdownItem>
77−
78− <DropdownItem
79− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.SHARDS)) }
80− >
81− { 'Urbit Master Ticket (Shards)' }
82− </DropdownItem>
83−
84− <DropdownDivider />
85−
86− <DropdownItem
87− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.LEDGER)) }
88− >
89− { 'Ledger' }
90− </DropdownItem>
91−
92− <DropdownItem
93− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.TREZOR)) }
94− >
95− { 'Trezor' }
96− </DropdownItem>
97−
98− <DropdownDivider />
99−
100− <DropdownItem
101− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.MNEMONIC)) }
102− >
103− { 'BIP39 Mnemonic' }
104− </DropdownItem>
105−
106− <DropdownItem
107− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.PRIVATE_KEY)) }
108− >
109− { 'Ethereum Private Key' }
110− </DropdownItem>
111−
112− <DropdownItem
113− onClick={ () => this.selectClose(() => props.setWalletType(WALLET_NAMES.KEYSTORE)) }
114− >
115− { 'Ethereum Keystore File' }
116− </DropdownItem>
117−
118−
119−
120 </InnerLabelDropdown>
76 </InnerLabelDropdown>
121
77
122 <Button
78 <Button