const React = require('react');
const {ListGroup} = require('react-bootstrap');
const TeamListItem = require('./TeamListItem.jsx');
const TeamListItemNew = require('./TeamListItemNew.jsx');
const TeamList = React.createClass({
propTypes: {
onTeamsChange: React.PropTypes.func,
showAddTeamForm: React.PropTypes.bool,
teams: React.PropTypes.array
},
getInitialState() {
return {
showTeamListItemNew: false,
team: {
url: '',
name: '',
index: false
}
};
},
handleTeamRemove(index) {
console.log(index);
var teams = this.props.teams;
teams.splice(index, 1);
this.props.onTeamsChange(teams);
},
handleTeamAdd(team) {
var teams = this.props.teams;
// check if team already exists and then change existing team or add new one
if ((typeof team.index !== 'undefined') && teams[team.index]) {
teams[team.index].name = team.name;
teams[team.index].url = team.url;
} else {
teams.push(team);
}
this.setState({
showTeamListItemNew: false,
team: {
url: '',
name: '',
index: false
}
});
this.props.onTeamsChange(teams);
},
handleTeamEditing(teamName, teamUrl, teamIndex) {
this.setState({
showTeamListItemNew: true,
team: {
url: teamUrl,
name: teamName,
index: teamIndex
}
});
},
render() {
var self = this;
var teamNodes = this.props.teams.map((team, i) => {
function handleTeamRemove() {
self.handleTeamRemove(i);
}
function handleTeamEditing() {
self.handleTeamEditing(team.name, team.url, i);
}
return (
);
});
var addTeamForm;
if (this.props.showAddTeamForm || this.state.showTeamListItemNew) {
addTeamForm = (
);
} else {
addTeamForm = '';
}
return (
{ teamNodes }
{ addTeamForm }
);
}
});
module.exports = TeamList;