function team_symbol(team) {
if (team === "+")
- return "🞥";
+ return "+";
else
- return "🞇";
+ return "o";
}
function undisplay(element) {
events.onerror = function(event) {
if (event.target.readyState === EventSource.CLOSED) {
+ setTimeout(() => {
add_message("danger", "Connection to server lost.");
+ }, 1000);
}
};
);
}
-class Board extends React.Component {
- render_square(i,j) {
- const value = this.props.squares[i][j];
+function MiniGrid(props) {
+ function grid_square(j) {
+ const value = props.squares[j];
return (
<Square
value={value}
- active={this.props.active && ! value}
- onClick={() => this.props.onClick(i,j)}
+ active={props.active}
+ onClick={() => props.onClick(j)}
/>
);
}
- render() {
- return (
- <div>
- <div className="board-row">
- {this.render_square(0,0)}
- {this.render_square(0,1)}
- {this.render_square(0,2)}
- {" "}
- {this.render_square(1,0)}
- {this.render_square(1,1)}
- {this.render_square(1,2)}
- {" "}
- {this.render_square(2,0)}
- {this.render_square(2,1)}
- {this.render_square(2,2)}
- </div>
- <div className="board-row">
- {this.render_square(0,3)}
- {this.render_square(0,4)}
- {this.render_square(0,5)}
- {" "}
- {this.render_square(1,3)}
- {this.render_square(1,4)}
- {this.render_square(1,5)}
- {" "}
- {this.render_square(2,3)}
- {this.render_square(2,4)}
- {this.render_square(2,5)}
- </div>
- <div className="board-row">
- {this.render_square(0,6)}
- {this.render_square(0,7)}
- {this.render_square(0,8)}
- {" "}
- {this.render_square(1,6)}
- {this.render_square(1,7)}
- {this.render_square(1,8)}
- {" "}
- {this.render_square(2,6)}
- {this.render_square(2,7)}
- {this.render_square(2,8)}
- </div>
-
- <div className="board-row">
- </div>
-
- <div className="board-row">
- {this.render_square(3,0)}
- {this.render_square(3,1)}
- {this.render_square(3,2)}
- {" "}
- {this.render_square(4,0)}
- {this.render_square(4,1)}
- {this.render_square(4,2)}
- {" "}
- {this.render_square(5,0)}
- {this.render_square(5,1)}
- {this.render_square(5,2)}
- </div>
- <div className="board-row">
- {this.render_square(3,3)}
- {this.render_square(3,4)}
- {this.render_square(3,5)}
- {" "}
- {this.render_square(4,3)}
- {this.render_square(4,4)}
- {this.render_square(4,5)}
- {" "}
- {this.render_square(5,3)}
- {this.render_square(5,4)}
- {this.render_square(5,5)}
- </div>
- <div className="board-row">
- {this.render_square(3,6)}
- {this.render_square(3,7)}
- {this.render_square(3,8)}
- {" "}
- {this.render_square(4,6)}
- {this.render_square(4,7)}
- {this.render_square(4,8)}
- {" "}
- {this.render_square(5,6)}
- {this.render_square(5,7)}
- {this.render_square(5,8)}
- </div>
+ return (
+ <div className="mini-grid">
+ {grid_square(0)}
+ {grid_square(1)}
+ {grid_square(2)}
+ {grid_square(3)}
+ {grid_square(4)}
+ {grid_square(5)}
+ {grid_square(6)}
+ {grid_square(7)}
+ {grid_square(8)}
+ </div>
+ );
+}
- <div className="board-row">
- </div>
+class Board extends React.Component {
+ mini_grid(i) {
+ const squares = this.props.squares[i];
+ return (
+ <MiniGrid
+ squares={squares}
+ active={this.props.active}
+ onClick={(j) => this.props.onClick(i,j)}
+ />
+ );
+ }
- <div className="board-row">
- {this.render_square(6,0)}
- {this.render_square(6,1)}
- {this.render_square(6,2)}
- {" "}
- {this.render_square(7,0)}
- {this.render_square(7,1)}
- {this.render_square(7,2)}
- {" "}
- {this.render_square(8,0)}
- {this.render_square(8,1)}
- {this.render_square(8,2)}
- </div>
- <div className="board-row">
- {this.render_square(6,3)}
- {this.render_square(6,4)}
- {this.render_square(6,5)}
- {" "}
- {this.render_square(7,3)}
- {this.render_square(7,4)}
- {this.render_square(7,5)}
- {" "}
- {this.render_square(8,3)}
- {this.render_square(8,4)}
- {this.render_square(8,5)}
- </div>
- <div className="board-row">
- {this.render_square(6,6)}
- {this.render_square(6,7)}
- {this.render_square(6,8)}
- {" "}
- {this.render_square(7,6)}
- {this.render_square(7,7)}
- {this.render_square(7,8)}
- {" "}
- {this.render_square(8,6)}
- {this.render_square(8,7)}
- {this.render_square(8,8)}
+ render() {
+ return (
+ <div className="board-container">
+ <div className="board">
+ {this.mini_grid(0)}
+ {this.mini_grid(1)}
+ {this.mini_grid(2)}
+ {this.mini_grid(3)}
+ {this.mini_grid(4)}
+ {this.mini_grid(5)}
+ {this.mini_grid(6)}
+ {this.mini_grid(7)}
+ {this.mini_grid(8)}
</div>
-
</div>
);
}