aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkumavis <kumavis@users.noreply.github.com>2016-05-20 10:15:00 +0800
committerkumavis <kumavis@users.noreply.github.com>2016-05-20 10:15:00 +0800
commitb0f92e05b12fa5cde453c7b53a19f6b0bca74f75 (patch)
tree648f386eeaf13729de893c50281d7809f6dd25a9
parent5b30f07d596c9ec24481d6aba5e9f7985c0a4384 (diff)
parent2a6d6fcd158d0e108b50c51a6deb5405505eeda6 (diff)
downloadtangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar.gz
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar.bz2
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar.lz
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar.xz
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.tar.zst
tangerine-wallet-browser-b0f92e05b12fa5cde453c7b53a19f6b0bca74f75.zip
Merge pull request #198 from MetaMask/FailedTxIndication
Tx list items should indicate when they failed.
-rw-r--r--ui/app/account-detail.js2
-rw-r--r--ui/app/components/transaction-list.js59
-rw-r--r--ui/app/css/lib.css5
3 files changed, 33 insertions, 33 deletions
diff --git a/ui/app/account-detail.js b/ui/app/account-detail.js
index 489392473..c708580c4 100644
--- a/ui/app/account-detail.js
+++ b/ui/app/account-detail.js
@@ -179,8 +179,6 @@ AccountDetailScreen.prototype.transactionList = function() {
.filter(tx => tx.txParams.from === state.address)
// only transactions that are on the current network
.filter(tx => tx.txParams.metamaskNetworkId === state.networkVersion)
- // only transactions that have a hash
- .filter(tx => tx.hash)
// sort by recency
.sort((a, b) => b.time - a.time)
diff --git a/ui/app/components/transaction-list.js b/ui/app/components/transaction-list.js
index 5e9ec8b87..f85aab70f 100644
--- a/ui/app/components/transaction-list.js
+++ b/ui/app/components/transaction-list.js
@@ -57,39 +57,17 @@ module.exports = function(transactions, network) {
)
- function renderTransaction(transaction){
-
- var panelOpts = {
- key: `tx-${transaction.hash}`,
- identiconKey: transaction.txParams.to,
- onClick: (event) => {
- var url = explorerLink(transaction.hash, parseInt(network))
- chrome.tabs.create({ url })
- },
- attributes: [
- {
- key: 'TIME',
- value: formatDate(transaction.time),
- },
- {
- key: 'TO',
- value: addressSummary(transaction.txParams.to),
- },
- {
- key: 'VALUE',
- value: formatBalance(transaction.txParams.value),
- },
- ]
- }
+ function renderTransaction(transaction, i){
var txParams = transaction.txParams
var date = formatDate(transaction.time)
return (
- h('.transaction-list-item.flex-row.flex-space-between.cursor-pointer', {
- key: `tx-${transaction.hash}`,
+ h(`.transaction-list-item.flex-row.flex-space-between${transaction.hash ? '.pointer' : ''}`, {
+ key: `tx-${transaction.id + i}`,
onClick: (event) => {
+ if (!transaction.hash) return
var url = explorerLink(transaction.hash, parseInt(network))
chrome.tabs.create({ url })
},
@@ -107,7 +85,7 @@ module.exports = function(transactions, network) {
h('div', date),
- recipientField(txParams),
+ recipientField(txParams, transaction),
]),
@@ -120,14 +98,17 @@ module.exports = function(transactions, network) {
}
}
-function recipientField(txParams) {
+function recipientField(txParams, transaction) {
if (txParams.to) {
return h('div', {
style: {
fontSize: 'small',
color: '#ABA9AA',
},
- }, addressSummary(txParams.to))
+ }, [
+ addressSummary(txParams.to),
+ failIfFailed(transaction),
+ ])
} else {
@@ -136,7 +117,11 @@ function recipientField(txParams) {
fontSize: 'small',
color: '#ABA9AA',
},
- }, 'Contract Published')
+ },[
+ 'Contract Published',
+ failIfFailed(transaction),
+ ])
+
}
}
@@ -145,6 +130,14 @@ function formatDate(date){
}
function identicon(txParams, transaction) {
+ if (transaction.status === 'rejected') {
+ return h('i.fa.fa-exclamation-triangle.fa-lg.error', {
+ style: {
+ width: '24px',
+ }
+ })
+ }
+
if (txParams.to) {
return h(Identicon, {
diameter: 24,
@@ -158,3 +151,9 @@ function identicon(txParams, transaction) {
})
}
}
+
+function failIfFailed(transaction) {
+ if (transaction.status === 'rejected') {
+ return h('span.error', ' (Failed)')
+ }
+}
diff --git a/ui/app/css/lib.css b/ui/app/css/lib.css
index 60c56422d..1eba7465b 100644
--- a/ui/app/css/lib.css
+++ b/ui/app/css/lib.css
@@ -5,7 +5,7 @@
}
.color-forest {
- color: #0A5448;
+ color: #0A5448;
}
/* lib */
@@ -107,6 +107,9 @@
user-select: none;
}
+.pointer {
+ cursor: pointer;
+}
.cursor-pointer {
cursor: pointer;
transform-origin: center center;