import React, { PropTypes } from 'react' import ProfileImage from 'boost/components/ProfileImage' import Select from 'react-select' import api from 'boost/api' import _ from 'lodash' import MemberRow from './MemberRow' 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) }) } renderTeamOptions () { return this.props.teams.map(team => { return ( {team.name}) }) } 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 => ( )) return ( Setting of this.handleTeamSelectChange(e)} className='teamSelect'> {this.renderTeamOptions()} Members Add member this.handleNewMemberChange(val)} value={this.state.newMember} /> this.handleClickAddMemberButton(e)} className='addMemberBtn'>add Username Role Delete {membersEl} ) } renderNoTeam () { return ( Setting of this.handleTeamSelectChange(e)} className='teamSelect'> {this.renderTeamOptions()} Please select a team ) } } MemberSettingTab.propTypes = { currentUser: PropTypes.shape(), teams: PropTypes.array, currentTeamId: PropTypes.number, switchTeam: PropTypes.func }