From 24fd16b1bee31352ef7f364804eb5f06c08c3bf6 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 19 Sep 2017 22:26:10 -0230 Subject: Abstract account modal. --- ui/app/components/modals/account-details-modal.js | 45 ++++-------------- .../components/modals/account-modal-container.js | 55 ++++++++++++++++++++++ ui/app/components/qr-code.js | 2 +- 3 files changed, 66 insertions(+), 36 deletions(-) create mode 100644 ui/app/components/modals/account-modal-container.js (limited to 'ui/app/components') diff --git a/ui/app/components/modals/account-details-modal.js b/ui/app/components/modals/account-details-modal.js index ec7e4b500..6c2eba7bd 100644 --- a/ui/app/components/modals/account-details-modal.js +++ b/ui/app/components/modals/account-details-modal.js @@ -3,25 +3,21 @@ const h = require('react-hyperscript') const inherits = require('util').inherits const connect = require('react-redux').connect const actions = require('../../actions') +const AccountModalContainer = require('./account-modal-container') const { getSelectedIdentity, getSelectedAddress } = require('../../selectors') const genAccountLink = require('../../../lib/account-link.js') -const Identicon = require('../identicon') const QrView = require('../qr-code') function mapStateToProps (state) { return { network: state.metamask.network, - address: state.metamask.selectedAddress, - selectedAddress: getSelectedAddress(state), selectedIdentity: getSelectedIdentity(state), } } function mapDispatchToProps (dispatch) { return { - hideModal: () => { - dispatch(actions.hideModal()) - }, + // Is this supposed to be used somewhere? showQrView: (selected, identity) => dispatch(actions.showQrView(selected, identity)), } } @@ -34,49 +30,28 @@ function AccountDetailsModal () { module.exports = connect(mapStateToProps, mapDispatchToProps)(AccountDetailsModal) // Not yet pixel perfect todos: - // fonts of qr-header and close button + // fonts of qr-header AccountDetailsModal.prototype.render = function () { const { selectedIdentity, network } = this.props + const { name, address } = selectedIdentity - return h('div', { style: { borderRadius: '4px' }}, [ - h('div.account-details-modal-wrapper', [ - - h('div', [ - - // Needs a border; requires changes to svg - h(Identicon, { - address: selectedIdentity.address, - diameter: 64, - style: {}, - }), - - ]), - - h('div.account-details-modal-close', { - onClick: this.props.hideModal, - }), - + return h(AccountModalContainer, {}, [ h(QrView, { Qr: { - message: this.props.selectedIdentity.name, - data: this.props.selectedIdentity.address, + message: name, + data: address, }, }), - // divider - h('div.account-details-modal-divider'), + h('div.account-modal-divider'), h('button.btn-clear', { - onClick: () => { - const url = genAccountLink(selectedIdentity.address, network) - global.platform.openWindow({ url }) - }, + onClick: () => global.platform.openWindow({ url: genAccountLink(address, network) }), }, [ 'View account on Etherscan' ]), // Holding on redesign for Export Private Key functionality h('button.btn-clear', [ 'Export private key' ]), - - ]), + ]) } diff --git a/ui/app/components/modals/account-modal-container.js b/ui/app/components/modals/account-modal-container.js new file mode 100644 index 000000000..69650ca15 --- /dev/null +++ b/ui/app/components/modals/account-modal-container.js @@ -0,0 +1,55 @@ +const Component = require('react').Component +const h = require('react-hyperscript') +const inherits = require('util').inherits +const connect = require('react-redux').connect +const actions = require('../../actions') +const { getSelectedIdentity } = require('../../selectors') +const Identicon = require('../identicon') + +function mapStateToProps (state) { + return { + selectedIdentity: getSelectedIdentity(state), + } +} + +function mapDispatchToProps (dispatch) { + return { + hideModal: () => { + dispatch(actions.hideModal()) + }, + } +} + +inherits(AccountModalContainer, Component) +function AccountModalContainer () { + Component.call(this) +} + +module.exports = connect(mapStateToProps, mapDispatchToProps)(AccountModalContainer) + +AccountModalContainer.prototype.render = function () { + const { selectedIdentity, children } = this.props + console.log(`children`, children); + return h('div', { style: { borderRadius: '4px' }}, [ + h('div.account-modal-container', [ + + h('div', [ + + // Needs a border; requires changes to svg + h(Identicon, { + address: selectedIdentity.address, + diameter: 64, + style: {}, + }), + + ]), + + h('div.account-modal-close', { + onClick: this.props.hideModal, + }), + + ...children, + + ]), + ]) +} diff --git a/ui/app/components/qr-code.js b/ui/app/components/qr-code.js index 4257c1a15..dca5c8c47 100644 --- a/ui/app/components/qr-code.js +++ b/ui/app/components/qr-code.js @@ -52,7 +52,7 @@ QrCodeView.prototype.render = function () { width: '247px', }, value: Qr.data, - readonly: true, + readOnly: true, }), // h(CopyButton, { // value: Qr.data, -- cgit