1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-23 18:41:38 +01:00

Create tx-list-item component.

This commit is contained in:
Dan 2017-08-30 08:03:00 -02:30 committed by Chi Kei Chan
parent 6d3b3d4203
commit 17b5afb8de
3 changed files with 123 additions and 74 deletions

View File

@ -0,0 +1,92 @@
const Component = require('react').Component
const h = require('react-hyperscript')
const inherits = require('util').inherits
const Identicon = require('./identicon')
module.exports = TxListItem
inherits(TxListItem, Component)
function TxListItem () {
Component.call(this)
}
TxListItem.prototype.getAddressText = function (address) {
return address
? `${address.slice(0, 10)}...${address.slice(-4)}`
: 'Contract Published'
}
TxListItem.prototype.render = function () {
const {
transactionStatus,
onClick,
transActionId,
dateString,
address,
transactionAmount,
className
} = this.props
return h(`div${className || ''}`, {
key: transActionId,
onClick: () => onClick && onClick(transActionId),
}, [
h(`div.flex-column.tx-list-item-wrapper`, {}, [
h('div.tx-list-date-wrapper', {
style: {},
}, [
h('span.tx-list-date', {}, [
dateString,
]),
]),
h('div.flex-row.tx-list-content-wrapper', {
style: {},
}, [
h('div.tx-list-identicon-wrapper', {
style: {},
}, [
h(Identicon, {
address,
diameter: 28,
}),
]),
h('div.tx-list-account-and-status-wrapper', {}, [
h('div.tx-list-account-wrapper', {
style: {},
}, [
h('span.tx-list-account', {}, [
this.getAddressText(address),
]),
]),
h('div.tx-list-status-wrapper', {
style: {},
}, [
h('span.tx-list-status', {}, [
transactionStatus,
]),
]),
]),
h('div.flex-column.tx-list-details-wrapper', {
style: {},
}, [
h('span.tx-list-value', {}, [
transactionAmount,
]),
h('span.tx-list-fiat-value', {}, [
'+ $300 USD',
]),
]),
]),
]) // holding on icon from design
])
}

View File

@ -3,7 +3,7 @@ const connect = require('react-redux').connect
const h = require('react-hyperscript')
const inherits = require('util').inherits
const selectors = require('../selectors')
const Identicon = require('./identicon')
const TxListItem = require('./tx-list-item')
const { formatBalance, formatDate } = require('../util')
const { showConfTxPage } = require('../actions')
@ -53,16 +53,6 @@ TxList.prototype.render = function () {
])
}
TxList.prototype.getAddressText = function (transaction) {
const {
txParams: { to },
} = transaction
return to
? `${to.slice(0, 10)}...${to.slice(-4)}`
: 'Contract Published'
}
TxList.prototype.renderTranstions = function () {
const { txsToRender } = this.props
@ -92,70 +82,21 @@ TxList.prototype.renderTransactionListItem = function (transaction) {
} = props
const { showConfTxPage } = this.props
return h('div.tx-list-item', {
key: transaction.id,
}, [
h('div.flex-column.tx-list-item__wrapper', {
onClick: () => transactionStatus === 'unapproved' && showConfTxPage({id: transActionId}),
style: {},
}, [
if (!address) return null
const opts = {
transactionStatus,
transActionId,
dateString,
address,
transactionAmount,
}
h('div.tx-list-date-wrapper', {
style: {},
}, [
h('span.tx-list-date', {}, [
dateString,
]),
]),
if (transactionStatus === 'unapproved') {
opts.onClick = () => showConfTxPage({id: transActionId})
opts.className = '.tx-list-pending-item-container'
}
h('div.flex-row.tx-list-content-wrapper', {
style: {},
}, [
h('div.tx-list-identicon-wrapper', {
style: {},
}, [
h(Identicon, {
address,
diameter: 28,
}),
]),
h('div.tx-list-account-and-status-wrapper', {}, [
h('div.tx-list-account-wrapper', {
style: {},
}, [
h('span.tx-list-account', {}, [
this.getAddressText(transaction),
]),
]),
h('div.tx-list-status-wrapper', {
style: {},
}, [
h('span.tx-list-status', {}, [
transactionStatus,
]),
]),
]),
h('div.flex-column.tx-list-details-wrapper', {
style: {},
}, [
h('span.tx-list-value', {}, [
transactionAmount,
]),
h('span.tx-list-fiat-value', {}, [
'+ $300 USD',
]),
]),
]),
]),
])
return h(TxListItem, opts)
}

View File

@ -61,6 +61,22 @@
flex: 0 0 70px;
align-items: stretch;
justify-content: flex-start;
@media screen and (max-width: $break-small) {
padding: 0 1.3em .95em;
}
@media screen and (min-width: $break-large) {
margin: 0 2.37em;
}
}
.tx-list-pending-item-container {
cursor: pointer;
}
.tx-list-pending-item-container:hover {
background: $alto;
}
.tx-list-date-wrapper {