From 1025eb3b4f90c2b909fe9d238cebba878c8ce2db Mon Sep 17 00:00:00 2001 From: Dan Finlay Date: Mon, 25 Apr 2016 14:14:34 -0700 Subject: Persist selected account When selecting an account, we now persist the selection to the `configManager`, so the selection can be restored when re-unlocking Metamask. Also found the bug where `rawtestrpc` was still being used as a default, and fixed it! --- ui/app/actions.js | 18 +++++++++++------- ui/app/components/account-panel.js | 6 ++---- ui/app/reducers/app.js | 4 +--- 3 files changed, 14 insertions(+), 14 deletions(-) (limited to 'ui/app') diff --git a/ui/app/actions.js b/ui/app/actions.js index e2d81883f..a2106ea85 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -105,13 +105,13 @@ function goHome() { function tryUnlockMetamask(password) { return (dispatch) => { dispatch(this.unlockInProgress()) - _accountManager.submitPassword(password, (err, accounts) => { + _accountManager.submitPassword(password, (err, selectedAccount) => { dispatch(this.hideLoadingIndication()) if (err) { dispatch(this.unlockFailed()) } else { dispatch(this.unlockMetamask()) - dispatch(this.showAccountDetail(accounts[0].address)) + dispatch(this.showAccountDetail(selectedAccount)) } }) } @@ -130,7 +130,7 @@ function recoverFromSeed(password, seed) { return (dispatch) => { // dispatch(this.createNewVaultInProgress()) dispatch(this.showLoadingIndication()) - _accountManager.recoverFromSeed(password, seed, (err, accounts) => { + _accountManager.recoverFromSeed(password, seed, (err, selectedAccount) => { if (err) { dispatch(this.hideLoadingIndication()) var message = err.message @@ -138,7 +138,7 @@ function recoverFromSeed(password, seed) { } dispatch(this.unlockMetamask()) - dispatch(this.showAccountDetail(accounts[0].address)) + dispatch(this.showAccountDetail(selectedAccount)) dispatch(this.hideLoadingIndication()) }) } @@ -281,9 +281,13 @@ function lockMetamask() { } function showAccountDetail(address) { - return { - type: this.SHOW_ACCOUNT_DETAIL, - value: address, + return (dispatch) => { + _accountManager.setSelectedAddress(address) + + dispatch({ + type: this.SHOW_ACCOUNT_DETAIL, + value: address, + }) } } diff --git a/ui/app/components/account-panel.js b/ui/app/components/account-panel.js index 9de29cd91..9fda2ebfc 100644 --- a/ui/app/components/account-panel.js +++ b/ui/app/components/account-panel.js @@ -25,7 +25,7 @@ AccountPanel.prototype.render = function() { style: { flex: '1 0 auto', }, - onClick: state.onShowDetail && state.onShowDetail.bind(null, identity.address), + onClick: (event) => state.onShowDetail(identity.address, event), }, [ // account identicon @@ -53,9 +53,7 @@ AccountPanel.prototype.render = function() { // navigate to account detail !state.onShowDetail ? null : - h('.arrow-right.cursor-pointer', { - onClick: state.onShowDetail && state.onShowDetail.bind(null, identity.address), - }, [ + h('.arrow-right.cursor-pointer', [ h('i.fa.fa-chevron-right.fa-lg'), ]), ]) diff --git a/ui/app/reducers/app.js b/ui/app/reducers/app.js index 131b434e9..f522e6042 100644 --- a/ui/app/reducers/app.js +++ b/ui/app/reducers/app.js @@ -7,12 +7,10 @@ module.exports = reduceApp function reduceApp(state, action) { // clone and defaults - var accounts = valuesFor(state.metamask.accounts) - var account = accounts.length ? valuesFor(state.metamask.accounts)[0].address : null var defaultView = { name: 'accountDetail', detailView: null, - context: account, + context: state.metamask.selectedAccount, } // confirm seed words -- cgit