mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-27 12:56:01 +01:00
f9eba9d7e5
For some reason the popup was often cutting off the bottom buttons of the UI. We should look at that more carefully later perhaps, but especially since we're considering moving off the popup, I'm just fixing it by making it taller for now.
70 lines
1.2 KiB
JavaScript
70 lines
1.2 KiB
JavaScript
const extension = require('./extension')
|
|
const height = 520
|
|
const width = 360
|
|
|
|
const notifications = {
|
|
show,
|
|
getPopup,
|
|
closePopup,
|
|
}
|
|
module.exports = notifications
|
|
window.METAMASK_NOTIFIER = notifications
|
|
|
|
function show () {
|
|
getPopup((err, popup) => {
|
|
if (err) throw err
|
|
|
|
if (popup) {
|
|
|
|
// bring focus to existing popup
|
|
extension.windows.update(popup.id, { focused: true })
|
|
|
|
} else {
|
|
|
|
// create new popup
|
|
extension.windows.create({
|
|
url: 'notification.html',
|
|
type: 'popup',
|
|
focused: true,
|
|
width,
|
|
height,
|
|
})
|
|
|
|
}
|
|
})
|
|
}
|
|
|
|
function getWindows(cb) {
|
|
// Ignore in test environment
|
|
if (!extension.windows) {
|
|
return cb()
|
|
}
|
|
|
|
extension.windows.getAll({}, (windows) => {
|
|
cb(null, windows)
|
|
})
|
|
}
|
|
|
|
function getPopup(cb) {
|
|
getWindows((err, windows) => {
|
|
if (err) throw err
|
|
cb(null, getPopupIn(windows))
|
|
})
|
|
}
|
|
|
|
function getPopupIn(windows) {
|
|
return windows ? windows.find((win) => {
|
|
return (win && win.type === 'popup' &&
|
|
win.height === height &&
|
|
win.width === width)
|
|
}) : null
|
|
}
|
|
|
|
function closePopup() {
|
|
getPopup((err, popup) => {
|
|
if (err) throw err
|
|
if (!popup) return
|
|
extension.windows.remove(popup.id, console.error)
|
|
})
|
|
}
|