1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 18:00:18 +01:00

Close popup even if last tx is dismissed from main UI

This commit is contained in:
Dan Finlay 2016-08-23 11:40:08 -07:00
parent e5ca83d2bf
commit 4fb49dfb4b
2 changed files with 22 additions and 15 deletions

View File

@ -2,19 +2,15 @@ const extension = require('./extension')
const notifications = {
show: showNotification,
getPopup,
}
module.exports = notifications
window.METAMASK_NOTIFIER = notifications
function showNotification() {
extension.windows.getAll({}, (windows) => {
let popupWindow = windows.find((win) => {
return win.type === 'popup'
})
if (popupWindow) {
return extension.windows.update(popupWindow.id, { focused: true })
getPopup((popup) => {
if (popup) {
return extension.windows.update(popup.id, { focused: true })
}
extension.windows.create({
@ -27,3 +23,13 @@ function showNotification() {
})
}
function getPopup(cb) {
extension.windows.getAll({}, (windows) => {
let popup = windows.find((win) => {
return win.type === 'popup'
})
cb(popup)
})
}

View File

@ -2,6 +2,7 @@ const extend = require('xtend')
const actions = require('../actions')
const txHelper = require('../../lib/tx-helper')
const extension = require('../../../app/scripts/lib/extension')
const notification = require('../../../app/scripts/lib/notifications')
module.exports = reduceApp
@ -252,12 +253,7 @@ function reduceApp (state, action) {
})
} else {
const isNotification = window.METAMASK_UI_TYPE === 'notification'
if (isNotification) {
extension.windows.getCurrent({}, (win) => {
extension.windows.remove(win.id, console.error)
})
}
closePopupIfOpen()
return extend(appState, {
transForward: false,
@ -524,4 +520,9 @@ function indexForPending (state, txId) {
return idx
}
function closePopupIfOpen() {
notification.getPopup((popup) => {
if (!popup) return
extension.windows.remove(popup.id, console.error)
})
}