diff options
Diffstat (limited to 'app/scripts/lib/notifications.js')
-rw-r--r-- | app/scripts/lib/notifications.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/app/scripts/lib/notifications.js b/app/scripts/lib/notifications.js new file mode 100644 index 000000000..2b7cbfe66 --- /dev/null +++ b/app/scripts/lib/notifications.js @@ -0,0 +1,75 @@ +const createId = require('hat') +const uiUtils = require('../../../ui/app/util') +var notificationHandlers = {} + +module.exports = { + createTxNotification: createTxNotification, + createMsgNotification: createMsgNotification, +} + +// notification button press +chrome.notifications.onButtonClicked.addListener(function(notificationId, buttonIndex){ + var handlers = notificationHandlers[notificationId] + if (buttonIndex === 0) { + handlers.confirm() + } else { + handlers.cancel() + } + chrome.notifications.clear(notificationId) +}) + +// notification teardown +chrome.notifications.onClosed.addListener(function(notificationId){ + delete notificationHandlers[notificationId] +}) + +// creation helper +function createTxNotification(opts){ + var message = [ + 'to: '+uiUtils.addressSummary(opts.txParams.to), + 'from: '+uiUtils.addressSummary(opts.txParams.from), + 'value: '+uiUtils.formatBalance(opts.txParams.value), + 'data: '+uiUtils.dataSize(opts.txParams.data), + ].join('\n') + + var id = createId() + chrome.notifications.create(id, { + type: 'basic', + iconUrl: '/images/icon-128.png', + title: opts.title, + message: message, + buttons: [{ + title: 'confirm', + },{ + title: 'cancel', + }] + }) + notificationHandlers[id] = { + confirm: opts.confirm, + cancel: opts.cancel, + } +} + +function createMsgNotification(opts){ + var message = [ + 'to be signed by: '+uiUtils.addressSummary(opts.msgParams.from), + 'message:\n'+opts.msgParams.data, + ].join('\n') + + var id = createId() + chrome.notifications.create(id, { + type: 'basic', + iconUrl: '/images/icon-128.png', + title: opts.title, + message: message, + buttons: [{ + title: 'confirm', + },{ + title: 'cancel', + }] + }) + notificationHandlers[id] = { + confirm: opts.confirm, + cancel: opts.cancel, + } +}
\ No newline at end of file |