2019-11-23 05:14:12 +01:00
|
|
|
import React, { Component } from 'react'
|
2016-11-04 22:39:53 +01:00
|
|
|
const inherits = require('util').inherits
|
2018-03-29 17:00:44 +02:00
|
|
|
const PropTypes = require('prop-types')
|
|
|
|
const connect = require('react-redux').connect
|
2016-11-04 22:39:53 +01:00
|
|
|
import Select from 'react-select'
|
|
|
|
|
2016-11-04 23:08:50 +01:00
|
|
|
// Subviews
|
|
|
|
const JsonImportView = require('./json.js')
|
2017-01-18 01:22:22 +01:00
|
|
|
const PrivateKeyImportView = require('./private-key.js')
|
|
|
|
|
2016-11-04 23:08:50 +01:00
|
|
|
|
2018-03-29 17:00:44 +02:00
|
|
|
AccountImportSubview.contextTypes = {
|
|
|
|
t: PropTypes.func,
|
|
|
|
}
|
|
|
|
|
2018-03-22 02:40:28 +01:00
|
|
|
module.exports = connect()(AccountImportSubview)
|
2016-11-04 22:39:53 +01:00
|
|
|
|
2018-03-29 17:00:44 +02:00
|
|
|
|
2016-11-04 22:39:53 +01:00
|
|
|
inherits(AccountImportSubview, Component)
|
|
|
|
function AccountImportSubview () {
|
|
|
|
Component.call(this)
|
|
|
|
}
|
|
|
|
|
2018-03-22 02:40:28 +01:00
|
|
|
AccountImportSubview.prototype.getMenuItemTexts = function () {
|
2018-03-22 03:18:10 +01:00
|
|
|
return [
|
2018-03-29 17:00:44 +02:00
|
|
|
this.context.t('privateKey'),
|
|
|
|
this.context.t('jsonFile'),
|
2018-03-22 02:40:28 +01:00
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2016-11-04 22:39:53 +01:00
|
|
|
AccountImportSubview.prototype.render = function () {
|
|
|
|
const state = this.state || {}
|
2018-03-22 02:40:28 +01:00
|
|
|
const menuItems = this.getMenuItemTexts()
|
2016-11-04 22:39:53 +01:00
|
|
|
const { type } = state
|
|
|
|
|
|
|
|
return (
|
2019-11-23 05:14:12 +01:00
|
|
|
<div className="new-account-import-form">
|
|
|
|
<div className="new-account-import-disclaimer">
|
|
|
|
<span>{this.context.t('importAccountMsg')}</span>
|
|
|
|
<span
|
|
|
|
style={{
|
2018-02-27 21:01:09 +01:00
|
|
|
cursor: 'pointer',
|
|
|
|
textDecoration: 'underline',
|
2019-11-23 05:14:12 +01:00
|
|
|
}}
|
|
|
|
onClick={() => {
|
2018-02-27 21:01:09 +01:00
|
|
|
global.platform.openWindow({
|
2018-10-11 18:06:24 +02:00
|
|
|
url: 'https://metamask.zendesk.com/hc/en-us/articles/360015289932',
|
2018-02-27 21:01:09 +01:00
|
|
|
})
|
2019-11-23 05:14:12 +01:00
|
|
|
}}>
|
|
|
|
{this.context.t('here')}
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div className="new-account-import-form__select-section">
|
|
|
|
<div className="new-account-import-form__select-label">
|
|
|
|
{this.context.t('selectType')}
|
|
|
|
</div>
|
|
|
|
<Select
|
|
|
|
className="new-account-import-form__select"
|
|
|
|
name="import-type-select"
|
|
|
|
clearable={false}
|
|
|
|
value={type || menuItems[0]}
|
|
|
|
options={menuItems.map((type) => {
|
2016-11-04 22:39:53 +01:00
|
|
|
return {
|
|
|
|
value: type,
|
|
|
|
label: type,
|
|
|
|
}
|
2019-11-23 05:14:12 +01:00
|
|
|
})}
|
|
|
|
onChange={(opt) => {
|
2016-11-04 22:39:53 +01:00
|
|
|
this.setState({ type: opt.value })
|
2019-11-23 05:14:12 +01:00
|
|
|
}}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
{this.renderImportView()}
|
|
|
|
</div>
|
2016-11-04 22:39:53 +01:00
|
|
|
)
|
|
|
|
}
|
|
|
|
|
2017-04-27 06:05:45 +02:00
|
|
|
AccountImportSubview.prototype.renderImportView = function () {
|
2016-11-04 23:08:50 +01:00
|
|
|
const state = this.state || {}
|
2017-01-18 01:22:22 +01:00
|
|
|
const { type } = state
|
2018-03-22 02:40:28 +01:00
|
|
|
const menuItems = this.getMenuItemTexts()
|
2017-01-18 01:22:22 +01:00
|
|
|
const current = type || menuItems[0]
|
2016-11-04 23:08:50 +01:00
|
|
|
|
2017-01-18 01:22:22 +01:00
|
|
|
switch (current) {
|
2018-03-29 17:00:44 +02:00
|
|
|
case this.context.t('privateKey'):
|
2019-11-23 05:14:12 +01:00
|
|
|
return <PrivateKeyImportView />
|
2018-03-29 17:00:44 +02:00
|
|
|
case this.context.t('jsonFile'):
|
2019-11-23 05:14:12 +01:00
|
|
|
return <JsonImportView />
|
2016-11-04 23:08:50 +01:00
|
|
|
default:
|
2019-11-23 05:14:12 +01:00
|
|
|
return <JsonImportView />
|
2016-11-04 23:08:50 +01:00
|
|
|
}
|
|
|
|
}
|