aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/scripts/lib/notifications.js42
1 files changed, 24 insertions, 18 deletions
diff --git a/app/scripts/lib/notifications.js b/app/scripts/lib/notifications.js
index df4fe73dd..4e3f7558c 100644
--- a/app/scripts/lib/notifications.js
+++ b/app/scripts/lib/notifications.js
@@ -9,20 +9,26 @@ module.exports = notifications
window.METAMASK_NOTIFIER = notifications
function show () {
- getWindows((windows) => {
+ getPopup((err, popup) => {
+ if (err) throw err
- if (windows.length > 0) {
- const win = windows[0]
- return extension.windows.update(win.id, { focused: true })
- }
+ if (popup) {
+
+ // bring focus to existing popup
+ extension.windows.update(popup.id, { focused: true })
+
+ } else {
- extension.windows.create({
- url: 'notification.html',
- type: 'popup',
- focused: true,
- width: 360,
- height: 500,
- })
+ // create new popup
+ extension.windows.create({
+ url: 'notification.html',
+ type: 'popup',
+ focused: true,
+ width: 360,
+ height: 500,
+ })
+
+ }
})
}
@@ -38,19 +44,19 @@ function getWindows(cb) {
}
function getPopup(cb) {
- getWindows((windows) => {
- cb(getPopupIn(windows))
+ getWindows((err, windows) => {
+ if (err) throw err
+ cb(null, getPopupIn(windows))
})
}
function getPopupIn(windows) {
- return windows ? windows.find((win) => {
- return win.type === 'popup'
- }) : null
+ return windows ? windows.find((win) => win.type === 'popup') : null
}
function closePopup() {
- getPopup((popup) => {
+ getPopup((err, popup) => {
+ if (err) throw err
if (!popup) return
extension.windows.remove(popup.id, console.error)
})