Merge pull request #220 from MetaMask/FixTransactionBackButton
SignTransaction return button brokenfeature/default_network_editable
commit
7c7fa23374
@ -0,0 +1,126 @@ |
||||
const Component = require('react').Component |
||||
const h = require('react-hyperscript') |
||||
const inherits = require('util').inherits |
||||
|
||||
const Identicon = require('./identicon') |
||||
const EtherBalance = require('./eth-balance') |
||||
const addressSummary = require('../util').addressSummary |
||||
const explorerLink = require('../../lib/explorer-link') |
||||
const formatBalance = require('../util').formatBalance |
||||
const vreme = new (require('vreme')) |
||||
|
||||
module.exports = TransactionListItem |
||||
|
||||
|
||||
inherits(TransactionListItem, Component) |
||||
function TransactionListItem() { |
||||
Component.call(this) |
||||
} |
||||
|
||||
TransactionListItem.prototype.render = function() { |
||||
const { transaction, i } = this.props |
||||
|
||||
var date = formatDate(transaction.time) |
||||
|
||||
var isMsg = ('msgParams' in transaction) |
||||
var isTx = ('txParams' in transaction) |
||||
|
||||
var txParams = transaction.txParams |
||||
|
||||
return ( |
||||
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 }) |
||||
}, |
||||
style: { |
||||
padding: '20px 0', |
||||
}, |
||||
}, [ |
||||
|
||||
// large identicon
|
||||
h('.identicon-wrapper.flex-column.flex-center.select-none', [ |
||||
identicon(txParams, transaction), |
||||
]), |
||||
|
||||
h('.flex-column', [ |
||||
|
||||
h('div', date), |
||||
|
||||
recipientField(txParams, transaction), |
||||
|
||||
]), |
||||
|
||||
h(EtherBalance, { |
||||
value: txParams.value, |
||||
}), |
||||
]) |
||||
) |
||||
} |
||||
|
||||
|
||||
function recipientField(txParams, transaction) { |
||||
if (txParams.to) { |
||||
return h('div', { |
||||
style: { |
||||
fontSize: 'small', |
||||
color: '#ABA9AA', |
||||
}, |
||||
}, [ |
||||
addressSummary(txParams.to), |
||||
failIfFailed(transaction), |
||||
]) |
||||
|
||||
} else { |
||||
|
||||
return h('div', { |
||||
style: { |
||||
fontSize: 'small', |
||||
color: '#ABA9AA', |
||||
}, |
||||
},[ |
||||
'Contract Published', |
||||
failIfFailed(transaction), |
||||
]) |
||||
} |
||||
} |
||||
|
||||
TransactionListItem.prototype.renderMessage = function() { |
||||
const { transaction, i } = this.props |
||||
return h('div', 'wowie, thats a message') |
||||
} |
||||
|
||||
function formatDate(date){ |
||||
return vreme.format(new Date(date), 'March 16 2014 14:30') |
||||
} |
||||
|
||||
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, |
||||
address: txParams.to || transaction.hash, |
||||
}) |
||||
} else { |
||||
return h('i.fa.fa-file-text-o.fa-lg', { |
||||
style: { |
||||
width: '24px', |
||||
} |
||||
}) |
||||
} |
||||
} |
||||
|
||||
function failIfFailed(transaction) { |
||||
if (transaction.status === 'rejected') { |
||||
return h('span.error', ' (Failed)') |
||||
} |
||||
} |
Loading…
Reference in new issue