* Actions *
*****************************************************/
- async join_game() {
- const response = await fetch_post_json("join");
- if (response.ok) {
- const data = await response.json();
- this.setState({
- joined: true,
- center: data.center,
- player_words: data.player_words,
- scores: data.scores,
- bag_remaining: data.remaining
- });
- /* Initialize positions for center tiles. */
- const positions = {};
- for (const tile of data.center) {
- positions[tile.id] = this._random_position();
- }
- this.setState({ tile_positions: positions });
- }
+ async start_game() {
+ await fetch_post_json("start");
+ }
+
+ receive_game_started() {
+ this.setState({ joined: true });
}
async deal_letter() {
url={state.game_info.url} />,
!state.joined ? (
- <button key="join"
- onClick={() => this.join_game()}>
- Join Game
+ <button key="start"
+ onClick={() => this.start_game()}>
+ Start Game
</button>
) : null,
window.game.remove_other_player(JSON.parse(event.data));
});
+events.addEventListener("game-started", event => {
+ window.game.receive_game_started();
+});
+
events.addEventListener("center", event => {
window.game.receive_center(JSON.parse(event.data));
});
* Actions *
*****************************************************/
- async join_game() {
- const response = await fetch_post_json("join");
- if (response.ok) {
- const data = await response.json();
- const tiles = data.tiles;
- this.setState({
- joined: true,
- tiles: tiles,
- rack: tiles.map((_, i) => i),
- bag_remaining: data.remaining
- });
- }
+ async start_game() {
+ await fetch_post_json("start");
+ }
+
+ receive_game_started() {
+ this.setState({ joined: true });
}
async toggle_stuck() {
) : null,
!state.joined && !state.game_over ? (
- <button key="join" onClick={() => this.join_game()}>
- Join Game
+ <button key="start" onClick={() => this.start_game()}>
+ Start Game
</button>
) : null,
window.game.remove_other_player(JSON.parse(event.data));
});
+events.addEventListener("game-started", event => {
+ window.game.receive_game_started();
+});
+
events.addEventListener("tiles", event => {
window.game.receive_tiles(JSON.parse(event.data));
});