}
window.game.set_active_prompt(state.active_prompt);
+
+ window.game.set_scores(state.scores);
});
events.addEventListener("prompt", event => {
window.game.set_players_answered(players_answered);
});
+events.addEventListener("scores", event => {
+ const scores = JSON.parse(event.data);
+
+ window.game.set_scores(scores);
+});
+
/*********************************************************
* Game and supporting classes *
*********************************************************/
});
}
+ set_scores(scores) {
+ this.setState({
+ scores: scores
+ });
+ }
+
render() {
const state = this.state;
const players_total = 1 + state.other_players.length;
+ if (state.scores) {
+ return (
+ <div className="scores">
+ <h2>Scores</h2>
+ <ul>
+ {state.scores.scores.map(score => {
+ return (
+ <li key={score.player}>
+ {score.player}: {score.score}
+ </li>
+ );
+ })}
+ </ul>
+ <h2>Words submitted</h2>
+ <ul>
+ {state.scores.words.map(word => {
+ return (
+ <li key={word.word}>
+ {word.word}:
+ {word.players.map(p => {
+ return (
+ <span key={p}>{p}{" "}</span>
+ );
+ })}
+ </li>
+ );
+ })}
+ </ul>
+ <button
+ className="new-game"
+ onClick={() => fetch_post_json('reset') }
+ >
+ New Game
+ </button>
+ </div>
+ );
+ }
+
if (state.active_prompt) {
return <ActivePrompt
prompt={state.active_prompt}