1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00

Update account list after adding account

Fixed by finally making a function generator for a pattern we use frequently, communicating to the background process.

Fixes #961
This commit is contained in:
Dan Finlay 2017-01-03 10:39:34 -08:00
parent b93cdd428b
commit 3ebf029c04

View File

@ -153,7 +153,7 @@ var actions = {
SHOW_NEW_KEYCHAIN: 'SHOW_NEW_KEYCHAIN',
showNewKeychain: showNewKeychain,
callBackgroundThenUpdate,
}
module.exports = actions
@ -269,15 +269,7 @@ function addNewKeyring (type, opts) {
}
function addNewAccount (ringNumber = 0) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
background.addNewAccount(ringNumber, (err) => {
dispatch(this.hideLoadingIndication())
if (err) {
return dispatch(actions.showWarning(err))
}
})
}
return callBackgroundThenUpdate(background.addNewAccount, ringNumber)
}
function showInfoPage () {
@ -476,6 +468,7 @@ function updateMetamaskState (newState) {
function lockMetamask () {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
background.setLocked((err, newState) => {
dispatch(actions.hideLoadingIndication())
if (err) {
@ -857,3 +850,24 @@ function shapeShiftRequest (query, options, cb) {
return shapShiftReq.send()
}
}
// Call Background Then Update
//
// A function generator for a common pattern wherein:
// We show loading indication.
// We call a background method.
// We hide loading indication.
// If it errored, we show a warning.
// If it didn't, we update the state.
function callBackgroundThenUpdate (method, ...args) {
return (dispatch) => {
dispatch(actions.showLoadingIndication())
method.call(background, ...args, (err, newState) => {
dispatch(actions.hideLoadingIndication())
if (err) {
return dispatch(actions.displayWarning(err.message))
}
dispatch(actions.updateMetamaskState(newState))
})
}
}