aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2016-06-25 08:29:38 +0800
committerGitHub <noreply@github.com>2016-06-25 08:29:38 +0800
commit36a183db94e66999421980f50c2ab2e8d1ce2c3b (patch)
tree27fc7720c82f88a935c5ba2c28e539f8bf115cbe /app
parent52518a5efc2f37881c2e88c8cb0649ad5bc41dd4 (diff)
parent770528d5380b9e30742130d986d196c192b2ac09 (diff)
downloadtangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar.gz
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar.bz2
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar.lz
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar.xz
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.tar.zst
tangerine-wallet-browser-36a183db94e66999421980f50c2ab2e8d1ce2c3b.zip
Merge pull request #326 from MetaMask/conf-tx-refactor
Tx/Msg Conf page + notifcation refactor
Diffstat (limited to 'app')
-rw-r--r--app/scripts/contentscript.js6
-rw-r--r--app/scripts/lib/notifications.js126
2 files changed, 79 insertions, 53 deletions
diff --git a/app/scripts/contentscript.js b/app/scripts/contentscript.js
index 5d31e3c38..f4f064163 100644
--- a/app/scripts/contentscript.js
+++ b/app/scripts/contentscript.js
@@ -1,7 +1,7 @@
const LocalMessageDuplexStream = require('./lib/local-message-stream.js')
const PortStream = require('./lib/port-stream.js')
const ObjectMultiplex = require('./lib/obj-multiplex')
-const urlUtil = require('url')
+// const urlUtil = require('url')
if (shouldInjectWeb3()) {
setupInjection()
@@ -45,8 +45,6 @@ function setupInjection(){
}
function shouldInjectWeb3(){
- var urlData = urlUtil.parse(window.location.href)
- var extension = urlData.pathname.split('.').slice(-1)[0]
- var shouldInject = (extension !== 'pdf')
+ var shouldInject = (window.location.href.indexOf('.pdf') === -1)
return shouldInject
} \ No newline at end of file
diff --git a/app/scripts/lib/notifications.js b/app/scripts/lib/notifications.js
index 5762fd26b..a5746ae6e 100644
--- a/app/scripts/lib/notifications.js
+++ b/app/scripts/lib/notifications.js
@@ -1,10 +1,11 @@
const createId = require('hat')
+const extend = require('xtend')
const unmountComponentAtNode = require('react-dom').unmountComponentAtNode
const findDOMNode = require('react-dom').findDOMNode
const render = require('react-dom').render
const h = require('react-hyperscript')
-const uiUtils = require('../../../ui/app/util')
-const renderPendingTx = require('../../../ui/app/components/pending-tx').prototype.renderGeneric
+const PendingTxDetails = require('../../../ui/app/components/pending-tx-details')
+const PendingMsgDetails = require('../../../ui/app/components/pending-msg-details')
const MetaMaskUiCss = require('../../../ui/css')
var notificationHandlers = {}
@@ -56,29 +57,29 @@ function createTxNotification (opts) {
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
- renderTransactionNotificationSVG(opts, function(err, source){
+ var state = {
+ title: 'New Unsigned Transaction',
+ imageifyIdenticons: false,
+ txData: {
+ txParams: opts.txParams,
+ time: (new Date()).getTime(),
+ },
+ identities: {
+
+ },
+ accounts: {
+
+ },
+ onConfirm: opts.confirm,
+ onCancel: opts.cancel,
+ }
+
+ renderTxNotificationSVG(state, function(err, notificationSvgSource){
if (err) throw err
-
- var imageUrl = 'data:image/svg+xml;utf8,' + encodeURIComponent(source)
-
- var id = createId()
- chrome.notifications.create(id, {
- type: 'image',
- // requireInteraction: true,
- iconUrl: '/images/icon-128.png',
- imageUrl: imageUrl,
- title: opts.title,
- message: '',
- buttons: [{
- title: 'confirm',
- }, {
- title: 'cancel',
- }],
- })
- notificationHandlers[id] = {
- confirm: opts.confirm,
- cancel: opts.cancel,
- }
+
+ showNotification(extend(state, {
+ imageUrl: toSvgUri(notificationSvgSource),
+ }))
})
}
@@ -86,19 +87,46 @@ function createTxNotification (opts) {
function createMsgNotification (opts) {
// guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
if (!chrome.notifications) return console.error('Chrome notifications API missing...')
- var message = [
- 'Submitted by ' + opts.msgParams.origin,
- 'to be signed by: ' + uiUtils.addressSummary(opts.msgParams.from),
- 'message:\n' + opts.msgParams.data,
- ].join('\n')
+
+ var state = {
+ title: 'New Unsigned Message',
+ imageifyIdenticons: false,
+ txData: {
+ msgParams: opts.msgParams,
+ time: (new Date()).getTime(),
+ },
+ identities: {
+
+ },
+ accounts: {
+
+ },
+ onConfirm: opts.confirm,
+ onCancel: opts.cancel,
+ }
+
+ renderMsgNotificationSVG(state, function(err, notificationSvgSource){
+ if (err) throw err
+
+ showNotification(extend(state, {
+ imageUrl: toSvgUri(notificationSvgSource),
+ }))
+
+ })
+}
+
+function showNotification (state) {
+ // guard for chrome bug https://github.com/MetaMask/metamask-plugin/issues/236
+ if (!chrome.notifications) return console.error('Chrome notifications API missing...')
var id = createId()
chrome.notifications.create(id, {
- type: 'basic',
+ type: 'image',
requireInteraction: true,
iconUrl: '/images/icon-128.png',
- title: opts.title,
- message: message,
+ imageUrl: state.imageUrl,
+ title: state.title,
+ message: '',
buttons: [{
title: 'confirm',
}, {
@@ -106,27 +134,23 @@ function createMsgNotification (opts) {
}],
})
notificationHandlers[id] = {
- confirm: opts.confirm,
- cancel: opts.cancel,
+ confirm: state.onConfirm,
+ cancel: state.onCancel,
}
-}
-function renderTransactionNotificationSVG(opts, cb){
- var state = {
- nonInteractive: true,
- inlineIdenticons: true,
- txData: {
- txParams: opts.txParams,
- time: (new Date()).getTime(),
- },
- identities: {
+}
- },
- accounts: {
+function renderTxNotificationSVG(state, cb){
+ var content = h(PendingTxDetails, state)
+ renderNotificationSVG(content, cb)
+}
- },
- }
+function renderMsgNotificationSVG(state, cb){
+ var content = h(PendingMsgDetails, state)
+ renderNotificationSVG(content, cb)
+}
+function renderNotificationSVG(content, cb){
var container = document.createElement('div')
var confirmView = h('div.app-primary', {
style: {
@@ -138,7 +162,7 @@ function renderTransactionNotificationSVG(opts, cb){
},
}, [
h('style', MetaMaskUiCss()),
- renderPendingTx(h, state),
+ content,
])
render(confirmView, container, function ready(){
@@ -160,4 +184,8 @@ function svgWrapper(content){
</svg>
`
return wrapperSource.split('{{content}}').join(content)
+}
+
+function toSvgUri(content){
+ return 'data:image/svg+xml;utf8,' + encodeURIComponent(content)
} \ No newline at end of file