import React, { PropTypes } from 'react' import ProfileImage from 'boost/components/ProfileImage' import Select from 'react-select' import api from 'boost/api' import _ from 'lodash' function getUsers (input, cb) { api.searchUser(input) .then(function (res) { let users = res.body cb(null, { options: users.map(user => { return { value: user.name, label: user.name } }), complete: false }) }) .catch(function (err) { console.error(err) }) } export default class MemberSettingTab extends React.Component { constructor (props) { super(props) this.state = { newMember: '' } } getCurrentTeam (props) { if (props == null) props = this.props return _.findWhere(props.teams, {id: props.currentTeamId}) } handleTeamSelectChange (e) { this.props.switchTeam(e.target.value) } handleNewMemberChange (value) { this.setState({newMember: value}) } handleClickAddMemberButton (e) { let team = this.getCurrentTeam() if (team == null || team.userType !== 'team') return null let input = { name: this.state.newMember, role: 'member' } api.setMember(team.id, input) .then(res => { console.log(res.body) }) .catch(err => { if (err.status != null) throw err else console.error(err) }) } handleMemberRoleChange (name) { return e => { let team = this.getCurrentTeam() let input = { name: name, role: e.target.value } api.setMember(team.id, input) .then(res => { console.log(res.body) }) .catch(err => { if (err.status != null) throw err else console.error(err) }) } } handleMemberDeleteButtonClick (name) { return e => { let team = this.getCurrentTeam() let input = { name: name } api.deleteMember(team.id, input) .then(res => { console.log(res.body) }) .catch(err => { if (err.status != null) throw err else console.error(err) }) } } renderTeamOptions () { return this.props.teams.map(team => { return ( ) }) } render () { console.log(this.props.teams) let team = this.getCurrentTeam() if (team == null || team.userType === 'person') { return this.renderNoTeam() } let membersEl = team.Members.map(member => { let isCurrentUser = this.props.currentUser.id === member.id return (