}
}
-function fetch_post_json(api = '', data = {}) {
+function fetch_method_json(method, api = '', data = {}) {
const response = fetch(api, {
- method: 'POST',
+ method: method,
headers: {
'Content-Type': 'application/json'
},
return response;
}
+function fetch_post_json(api = '', data = {}) {
+ return fetch_method_json('POST', api, data);
+}
+
+async function fetch_put_json(api = '', data = {}) {
+ return fetch_method_json('PUT', api, data);
+}
+
class Game extends React.Component {
constructor(props) {
super(props);
}
}
+ join_team(team) {
+ fetch_put_json("player", {team: team});
+ }
+
render() {
const history = this.state.history;
const current = history[this.state.step_number];
return [
<GameInfo
+ key="game-info"
id={this.state.game_info.id}
url={this.state.game_info.url}
/>,
<PlayerInfo
+ key="player-info"
id={this.state.player_info.id}
name={this.state.player_info.name}
team={this.state.player_info.team}
/>,
- <div className="game">
+ <div key="game" className="game">
+ <button className="inline"
+ onClick={() => this.join_team('X')}>Join Team X</button>
+
+ <button className="inline"
+ onClick={() => this.join_team('O')}>Join Team O</button>
<div>{status}</div>
<div className="game-board">
<Board