The old QR screen was absolutely positioning everything which broke when the app bar resized for the new UI announcement. This change, while futile*, makes the QR screen less bad. * futile because the old UI is being deprecatedfeature/default_network_editable
parent
6326dab186
commit
89c74ac4ad
@ -0,0 +1,86 @@ |
||||
const PropTypes = require('prop-types') |
||||
const {PureComponent} = require('react') |
||||
const h = require('react-hyperscript') |
||||
const {qrcode: qrCode} = require('qrcode-npm') |
||||
const {connect} = require('react-redux') |
||||
const {isHexPrefixed} = require('ethereumjs-util') |
||||
const actions = require('../../ui/app/actions') |
||||
const CopyButton = require('./components/copyButton') |
||||
|
||||
class AccountQrScreen extends PureComponent { |
||||
static defaultProps = { |
||||
warning: null, |
||||
} |
||||
|
||||
static propTypes = { |
||||
dispatch: PropTypes.func.isRequired, |
||||
buyView: PropTypes.any.isRequired, |
||||
Qr: PropTypes.object.isRequired, |
||||
selectedAddress: PropTypes.string.isRequired, |
||||
warning: PropTypes.node, |
||||
} |
||||
|
||||
render () { |
||||
const {dispatch, Qr, selectedAddress, warning} = this.props |
||||
const address = `${isHexPrefixed(Qr.data) ? 'ethereum:' : ''}${Qr.data}` |
||||
const qrImage = qrCode(4, 'M') |
||||
|
||||
qrImage.addData(address) |
||||
qrImage.make() |
||||
|
||||
return h('div.flex-column.full-width', { |
||||
style: { |
||||
alignItems: 'center', |
||||
boxSizing: 'border-box', |
||||
padding: '50px', |
||||
}, |
||||
}, [ |
||||
h('div.flex-row.full-width', { |
||||
style: { |
||||
alignItems: 'flex-start', |
||||
}, |
||||
}, [ |
||||
h('i.fa.fa-arrow-left.fa-lg.cursor-pointer.color-orange', { |
||||
onClick () { |
||||
dispatch(actions.backToAccountDetail(selectedAddress)) |
||||
}, |
||||
}), |
||||
]), |
||||
h('div.qr-header', Qr.message), |
||||
warning && h('span.error.flex-center', { |
||||
style: { |
||||
textAlign: 'center', |
||||
width: '229px', |
||||
height: '82px', |
||||
}, |
||||
}, [ |
||||
this.props.warning, |
||||
]), |
||||
h('div#qr-container.flex-column', { |
||||
style: { |
||||
marginTop: '25px', |
||||
marginBottom: '15px', |
||||
}, |
||||
dangerouslySetInnerHTML: { |
||||
__html: qrImage.createTableTag(4), |
||||
}, |
||||
}), |
||||
h('div.flex-row.full-width', [ |
||||
h('h3.ellip-address.grow-tenx', Qr.data), |
||||
h(CopyButton, { |
||||
value: Qr.data, |
||||
}), |
||||
]), |
||||
]) |
||||
} |
||||
} |
||||
|
||||
function mapStateToProps (state) { |
||||
return { |
||||
Qr: state.appState.Qr, |
||||
buyView: state.appState.buyView, |
||||
warning: state.appState.warning, |
||||
} |
||||
} |
||||
|
||||
module.exports = connect(mapStateToProps)(AccountQrScreen) |
@ -1,79 +0,0 @@ |
||||
const Component = require('react').Component |
||||
const h = require('react-hyperscript') |
||||
const qrCode = require('qrcode-npm').qrcode |
||||
const inherits = require('util').inherits |
||||
const connect = require('react-redux').connect |
||||
const isHexPrefixed = require('ethereumjs-util').isHexPrefixed |
||||
const CopyButton = require('./copyButton') |
||||
|
||||
module.exports = connect(mapStateToProps)(QrCodeView) |
||||
|
||||
function mapStateToProps (state) { |
||||
return { |
||||
Qr: state.appState.Qr, |
||||
buyView: state.appState.buyView, |
||||
warning: state.appState.warning, |
||||
} |
||||
} |
||||
|
||||
inherits(QrCodeView, Component) |
||||
|
||||
function QrCodeView () { |
||||
Component.call(this) |
||||
} |
||||
|
||||
QrCodeView.prototype.render = function () { |
||||
const props = this.props |
||||
const Qr = props.Qr |
||||
const address = `${isHexPrefixed(Qr.data) ? 'ethereum:' : ''}${Qr.data}` |
||||
const qrImage = qrCode(4, 'M') |
||||
qrImage.addData(address) |
||||
qrImage.make() |
||||
return h('.main-container.flex-column', { |
||||
key: 'qr', |
||||
style: { |
||||
justifyContent: 'center', |
||||
paddingBottom: '45px', |
||||
paddingLeft: '45px', |
||||
paddingRight: '45px', |
||||
alignItems: 'center', |
||||
}, |
||||
}, [ |
||||
Array.isArray(Qr.message) ? h('.message-container', this.renderMultiMessage()) : h('.qr-header', Qr.message), |
||||
|
||||
this.props.warning ? this.props.warning && h('span.error.flex-center', { |
||||
style: { |
||||
textAlign: 'center', |
||||
width: '229px', |
||||
height: '82px', |
||||
}, |
||||
}, |
||||
this.props.warning) : null, |
||||
|
||||
h('#qr-container.flex-column', { |
||||
style: { |
||||
marginTop: '25px', |
||||
marginBottom: '15px', |
||||
}, |
||||
dangerouslySetInnerHTML: { |
||||
__html: qrImage.createTableTag(4), |
||||
}, |
||||
}), |
||||
h('.flex-row', [ |
||||
h('h3.ellip-address', { |
||||
style: { |
||||
width: '247px', |
||||
}, |
||||
}, Qr.data), |
||||
h(CopyButton, { |
||||
value: Qr.data, |
||||
}), |
||||
]), |
||||
]) |
||||
} |
||||
|
||||
QrCodeView.prototype.renderMultiMessage = function () { |
||||
var Qr = this.props.Qr |
||||
var multiMessage = Qr.message.map((message) => h('.qr-message', message)) |
||||
return multiMessage |
||||
} |
Loading…
Reference in new issue