aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/actions.js
diff options
context:
space:
mode:
authorAlexander Tseung <alextsg@users.noreply.github.com>2017-10-27 14:02:56 +0800
committerDaniel Tsui <szehungdanieltsui@gmail.com>2017-10-27 14:02:56 +0800
commit4e8d8639cb29bd47c110765467393865e1c19f4e (patch)
treee05bc657bedede06fd9f7b839ca3f29f36f3f8ed /ui/app/actions.js
parent3d53716f4366212ed7a51b49ce747584b13fd1ce (diff)
downloadtangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar.gz
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar.bz2
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar.lz
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar.xz
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.tar.zst
tangerine-wallet-browser-4e8d8639cb29bd47c110765467393865e1c19f4e.zip
Fix Settings/Info screen being visible on logout (#2490)
Diffstat (limited to 'ui/app/actions.js')
-rw-r--r--ui/app/actions.js43
1 files changed, 42 insertions, 1 deletions
diff --git a/ui/app/actions.js b/ui/app/actions.js
index 2e9b34c58..8da530a79 100644
--- a/ui/app/actions.js
+++ b/ui/app/actions.js
@@ -808,9 +808,50 @@ function updateMetamaskState (newState) {
}
}
+const backgroundSetLocked = () => {
+ return new Promise((resolve, reject) => {
+ background.setLocked(error => {
+ if (error) {
+ return reject(error)
+ }
+
+ resolve()
+ })
+ })
+}
+
+const updateMetamaskStateFromBackground = () => {
+ log.debug(`background.getState`)
+
+ return new Promise((resolve, reject) => {
+ background.getState((error, newState) => {
+ if (error) {
+ return reject(error)
+ }
+
+ resolve(newState)
+ })
+ })
+}
+
function lockMetamask () {
log.debug(`background.setLocked`)
- return callBackgroundThenUpdate(background.setLocked)
+
+ return dispatch => {
+ dispatch(actions.showLoadingIndication())
+
+ return backgroundSetLocked()
+ .then(() => updateMetamaskStateFromBackground())
+ .catch(error => {
+ dispatch(actions.displayWarning(error.message))
+ return Promise.reject(error)
+ })
+ .then(newState => {
+ dispatch(actions.updateMetamaskState(newState))
+ dispatch({ type: actions.LOCK_METAMASK })
+ })
+ .catch(() => dispatch({ type: actions.LOCK_METAMASK }))
+ }
}
function setCurrentAccountTab (newTabName) {