// Copyright 2015, 2016 Ethcore (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, PropTypes } from 'react'; import { List, ListItem } from 'material-ui/List'; import Subheader from 'material-ui/Subheader'; import Avatar from 'material-ui/Avatar'; import IdentityIcon from '../../IdentityIcon'; import styles from './account-selector.css'; class AccountSelectorItem extends Component { static propTypes = { onSelectAccount: PropTypes.func.isRequired, account: PropTypes.object.isRequired }; render () { const account = this.props.account; const props = Object.assign({}, this.props); delete props.account; delete props.onSelectAccount; const icon = ( ); const avatar = ( ); return ( ); } onSelectAccount = () => { this.props.onSelectAccount(this.props.account.address); } } export default class AccountSelector extends Component { static propTypes = { list: PropTypes.array.isRequired, selected: PropTypes.object.isRequired, handleSetSelected: PropTypes.func.isRequired }; state = { open: false }; render () { const nestedAccounts = this.renderAccounts(this.props.list); const selectedAccount = ( ); return (
Select an account { selectedAccount }
); } renderAccounts (accounts) { return accounts .map((account, index) => ( )); } onToggleOpen = () => { this.setState({ open: !this.state.open }); } onSelectAccount = (address) => { this.props.handleSetSelected(address); this.onToggleOpen(); } }