From c775a842d10b5d0cd9f9db9b7cdda282f3fccd21 Mon Sep 17 00:00:00 2001 From: Whymarrh Whitby Date: Sat, 23 Nov 2019 00:10:35 -0330 Subject: [PATCH] Convert QrCodeView to use JSX (#7504) --- ui/app/components/ui/qr-code.js | 92 +++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 40 deletions(-) diff --git a/ui/app/components/ui/qr-code.js b/ui/app/components/ui/qr-code.js index 351e072e2..e0b7f3ff2 100644 --- a/ui/app/components/ui/qr-code.js +++ b/ui/app/components/ui/qr-code.js @@ -1,7 +1,6 @@ -const Component = require('react').Component -const h = require('react-hyperscript') +import PropTypes from 'prop-types' +import React from 'react' const qrCode = require('qrcode-generator') -const inherits = require('util').inherits const connect = require('react-redux').connect const { isHexPrefixed } = require('ethereumjs-util') const ReadOnlyInput = require('./readonly-input') @@ -17,47 +16,60 @@ function mapStateToProps (state) { } } -inherits(QrCodeView, Component) - -function QrCodeView () { - Component.call(this) -} - -QrCodeView.prototype.render = function () { - const props = this.props - const { message, data, network } = props.Qr - const address = `${isHexPrefixed(data) ? 'ethereum:' : ''}${checksumAddress(data, network)}` +function QrCodeView (props) { + const { message, data } = props.Qr + const address = `${isHexPrefixed(data) ? 'ethereum:' : ''}${checksumAddress(data)}` const qrImage = qrCode(4, 'M') qrImage.addData(address) qrImage.make() - return h('.div.flex-column.flex-center', [ - Array.isArray(message) - ? h('.message-container', this.renderMultiMessage()) - : message && h('.qr-header', message), - - this.props.warning ? this.props.warning && h('span.error.flex-center', { - style: { - }, - }, - this.props.warning) : null, - - h('.div.qr-wrapper', { - style: {}, - dangerouslySetInnerHTML: { - __html: qrImage.createTableTag(4), - }, - }), - h(ReadOnlyInput, { - wrapperClass: 'ellip-address-wrapper', - inputClass: 'qr-ellip-address', - value: checksumAddress(data, network), - }), - ]) + return ( +
+ { + Array.isArray(message) + ? ( +
+ {props.Qr.message.map((message, index) => ( +
+ {message} +
+ ))} +
+ ) + : message && ( +
+ {message} +
+ ) + } + { + props.warning + ? (props.warning && ( + + {props.warning} + + )) + : null + } +
+ +
+ ) } -QrCodeView.prototype.renderMultiMessage = function () { - var Qr = this.props.Qr - var multiMessage = Qr.message.map((message) => h('.qr-message', message)) - return multiMessage +QrCodeView.propTypes = { + warning: PropTypes.node, + Qr: PropTypes.shape({ + message: PropTypes.array, + data: PropTypes.string.isRequired, + }).isRequired, }