From b8e36f41a26f5dfa51b0e10df102bee10b377f6a Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 11 Mar 2016 17:13:48 -0800 Subject: notifications - add tx confirm+cancel buttons --- app/scripts/lib/tx-notification.js | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 app/scripts/lib/tx-notification.js (limited to 'app/scripts/lib/tx-notification.js') diff --git a/app/scripts/lib/tx-notification.js b/app/scripts/lib/tx-notification.js new file mode 100644 index 000000000..c7f62408b --- /dev/null +++ b/app/scripts/lib/tx-notification.js @@ -0,0 +1,49 @@ +const createId = require('hat') +const uiUtils = require('metamask-ui/app/util') +var notificationHandlers = {} + +module.exports = createTxNotification + + +// 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, + } +} \ No newline at end of file -- cgit