import { Button, Classes, Intent } from '@blueprintjs/core'; import { List } from 'immutable'; import React, { Component } from 'react'; import { connect } from 'react-redux'; import type { ApiHandCard, ApiPlayerTurnInfo } from '../../api/model'; import { Game } from '../../models/games'; import { Player } from '../../models/players'; import { actions } from '../../redux/actions/game'; import { getCurrentTurnInfo } from '../../redux/currentGame'; import { getCurrentGame } from '../../redux/games'; import { getCurrentPlayer, getPlayers } from '../../redux/players'; import { Hand } from './Hand'; import './GameScene.css' type GameSceneProps = { game: Game, currentPlayer: Player, players: List, turnInfo: ApiPlayerTurnInfo, sayReady: () => void } type GameSceneState = { selectedCard: ApiHandCard | void } class GameScenePresenter extends Component { state = { selectedCard: null }; selectCard(c: ApiHandCard) { this.setState({selectedCard: c}) } render() { return (

Now playing!

{this.props.turnInfo ? this.props.turnInfo.message : 'Click "ready" when you are'}

{this.props.turnInfo && this.selectCard(c)}/>} {!this.props.turnInfo &&
); } } const mapStateToProps: (state) => GameSceneProps = state => { const game = getCurrentGame(state.get('games')); console.info(game); return { game: game, currentPlayer: getCurrentPlayer(state), players: game ? getPlayers(state.get('players'), game.players) : new List(), turnInfo: getCurrentTurnInfo(state.get('currentGame')) }; }; const mapDispatchToProps = { sayReady: actions.sayReady, }; export const GameScene = connect(mapStateToProps, mapDispatchToProps)(GameScenePresenter);