// Copyright 2015-2017 Parity Technologies (UK) Ltd. // This file is part of Parity. // Parity is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // Parity is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with Parity. If not, see . import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { Form, TypedInput, Input, AddressSelect, InputAddress } from '@parity/ui'; import styles from '../createWallet.css'; export default class WalletDetails extends Component { static propTypes = { accounts: PropTypes.object.isRequired, wallet: PropTypes.object.isRequired, errors: PropTypes.object.isRequired, onChange: PropTypes.func.isRequired, walletType: PropTypes.string.isRequired }; render () { const { walletType } = this.props; if (walletType === 'WATCH') { return this.renderWatchDetails(); } return this.renderMultisigDetails(); } renderWatchDetails () { const { wallet, errors } = this.props; return (
} label={ } value={ wallet.address } error={ errors.address } onChange={ this.onAddressChange } /> } label={ } value={ wallet.name } onChange={ this.onNameChange } /> } label={ } value={ wallet.description } onChange={ this.onDescriptionChange } /> ); } renderMultisigDetails () { const { accounts, wallet, errors } = this.props; return (
} label={ } value={ wallet.name } onChange={ this.onNameChange } /> } label={ } value={ wallet.description } onChange={ this.onDescriptionChange } /> } label={ } value={ wallet.account } onChange={ this.onAccoutChange } /> } onChange={ this.onOwnersChange } param='address[]' value={ wallet.owners.slice() } />
} label={ } value={ wallet.required } onChange={ this.onRequiredChange } param='uint' min={ 1 } max={ wallet.owners.length + 1 } /> } isEth label={ } onChange={ this.onDaylimitChange } param='uint' value={ wallet.daylimit } />
); } onAddressChange = (_, address) => { this.props.onChange({ address }); } onAccoutChange = (_, account) => { this.props.onChange({ account }); } onNameChange = (_, name) => { this.props.onChange({ name }); } onDescriptionChange = (_, description) => { this.props.onChange({ description }); } onOwnersChange = (owners) => { this.props.onChange({ owners }); } onRequiredChange = (required) => { this.props.onChange({ required }); } onDaylimitChange = (daylimit) => { this.props.onChange({ daylimit }); } }