From 19d4c1349fb5fbb4a0ca6aaacbc54b3fddf1f2c6 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Wed, 16 Jan 2019 18:48:28 +0300 Subject: [PATCH 01/13] Refactor importing of accounts: enums, helpers are added, react-hyperscript to JSX --- old-ui/app/accounts/import/enums.js | 12 + old-ui/app/accounts/import/helpers.js | 18 ++ old-ui/app/accounts/import/index.js | 231 +++++++++--------- .../app/accounts/import/helpers.spec.js | 54 ++++ 4 files changed, 194 insertions(+), 121 deletions(-) create mode 100644 old-ui/app/accounts/import/enums.js create mode 100644 old-ui/app/accounts/import/helpers.js create mode 100644 test/unit/old-ui/app/accounts/import/helpers.spec.js diff --git a/old-ui/app/accounts/import/enums.js b/old-ui/app/accounts/import/enums.js new file mode 100644 index 000000000..33649486a --- /dev/null +++ b/old-ui/app/accounts/import/enums.js @@ -0,0 +1,12 @@ +const importTypes = { + PRIVATE_KEY: 'Private Key', + JSON_FILE: 'JSON File', + CONTRACT: { + DEFAULT: 'Contract', + PROXY: 'Proxy', + }, +} + +module.exports = { + importTypes, +} diff --git a/old-ui/app/accounts/import/helpers.js b/old-ui/app/accounts/import/helpers.js new file mode 100644 index 000000000..767b4ff21 --- /dev/null +++ b/old-ui/app/accounts/import/helpers.js @@ -0,0 +1,18 @@ +const nestedJsonObjToArray = (jsonObj) => { + return jsonObjToArray(jsonObj) +} + +const jsonObjToArray = (jsonObj) => { + return Object.keys(jsonObj).reduce((arr, key) => { + if (jsonObj[key].constructor === Object || jsonObj[key].constructor === Array) { + arr = arr.concat(jsonObjToArray(jsonObj[key])) + } else if (jsonObj[key].constructor === String) { + arr.push(jsonObj[key]) + } + return arr + }, []) +} + +module.exports = { + nestedJsonObjToArray, +} diff --git a/old-ui/app/accounts/import/index.js b/old-ui/app/accounts/import/index.js index b58a4bb3f..a964ce24d 100644 --- a/old-ui/app/accounts/import/index.js +++ b/old-ui/app/accounts/import/index.js @@ -1,137 +1,126 @@ -const inherits = require('util').inherits -const Component = require('react').Component -const h = require('react-hyperscript') -const connect = require('react-redux').connect -const actions = require('../../../../ui/app/actions') +import React, { Component } from 'react' +import { connect } from 'react-redux' +import PropTypes from 'prop-types' +import actions from '../../../../ui/app/actions' import Select from 'react-select' +import { importTypes } from './enums' +import { nestedJsonObjToArray } from './helpers' // Subviews const JsonImportView = require('./json.js') const PrivateKeyImportView = require('./private-key.js') const ContractImportView = require('./contract.js') -const menuItems = [ - 'Private Key', - 'JSON File', - 'Contract', -] +const menuItems = nestedJsonObjToArray(importTypes) -module.exports = connect(mapStateToProps)(AccountImportSubview) +class AccountImportSubview extends Component { + static propTypes = { + menuItems: PropTypes.object.Array, + warning: PropTypes.node, + goHome: PropTypes.func, + displayWarning: PropTypes.func, + showImportPage: PropTypes.func, + } + render () { + const props = this.props + const state = this.state || {} + const { menuItems } = props + const { type } = state -function mapStateToProps (state) { + return ( +
+
+
+
+
{ props.goHome() }} + style={{ + position: 'absolute', + left: '30px', + }} + /> +

Import Accounts

+
+
+ Imported accounts will not be associated with your originally created Nifty Wallet account seedphrase. +
+
+

Select Type

+ Paste ABI of contract here - { copyToClipboard(this.state.abi) }} +