import React from 'react'
import {Button, ButtonGroup, ButtonToolbar, Glyphicon} from 'react-bootstrap'
import App from 'app'
import Account from 'models/account'
import Confirmation from 'components/confirmation'
export default class AccountList extends React.Component {
  static get defaultProps() {return{
    account: null,
    accounts: [],
    onAdd: null,
    onRemove: null,
    onSelect: null
  }}
  constructor(props) {
    super(props)
    this.state = {
      mode: 'expanded',
      showRemoveConfirmation: false
    }
    // prebind:
    this.select = this.select.bind(this)
    this.add    = this.add.bind(this)
    this.remove = this.remove.bind(this)
    this.askRemove = this.askRemove.bind(this)
    this.cancelRemove = this.cancelRemove.bind(this)
    this.expand = this.expand.bind(this)
    this.collapse = this.collapse.bind(this)
  }
  select(e) {
    let account = this.props.accounts.find(
      account => account.id == e.currentTarget.dataset.id
    )
    if (this.props.onSelect) {
      this.props.onSelect(account)
    }
  }
  add() {
    App.show('wizard')
  }
  remove() {
    this.setState({showRemoveConfirmation: false})
    if (this.props.onRemove) {
      this.props.onRemove(this.props.account)
    }
  }
  askRemove() {
    this.setState({showRemoveConfirmation: true})
  }
  cancelRemove() {
    this.setState({showRemoveConfirmation: false})
  }
  expand() {
    this.setState({mode: 'expanded'})
  }
  collapse() {
    this.setState({mode: 'collapsed'})
  }
  render() {
    let style = {}
    let expandButton = null
    let plusminusButtons = null
    let removeModal = null
    if (this.state.mode == 'expanded') {
      expandButton = (
        
      )
      let removeDisabled = !this.props.account || this.props.account.authenticated
      plusminusButtons = (