]> git.cworth.org Git - lmno.games/blobdiff - tictactoe/tictactoe.jsx
Add two buttons to allow the player to choose a team to join
[lmno.games] / tictactoe / tictactoe.jsx
index 5bb84f1b44790f9e08f22af22fef321c421b958c..f1426ecff4f443c8837237fffd8caeef3f751153 100644 (file)
@@ -143,9 +143,9 @@ class Board extends React.Component {
   }
 }
 
-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'
     },
@@ -154,6 +154,14 @@ function fetch_post_json(api = '', data = {}) {
   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);
@@ -233,6 +241,10 @@ class Game extends React.Component {
     }
   }
 
+  join_team(team) {
+    fetch_put_json("player", {team: team});
+  }
+
   render() {
     const history = this.state.history;
     const current = history[this.state.step_number];
@@ -258,6 +270,11 @@ class Game extends React.Component {
         team={this.state.player_info.team}
       />,
       <div key="game" className="game">
+        <button className="inline"
+                onClick={() => this.join_team('X')}>Join Team X</button>
+        &nbsp;
+        <button className="inline"
+                onClick={() => this.join_team('O')}>Join Team O</button>
         <div>{status}</div>
         <div className="game-board">
           <Board