// @flow import type { List } from 'immutable'; import React from 'react'; import { connect } from 'react-redux'; import type { Game } from '../../models/games'; import { actions } from '../../redux/actions/lobby'; import { getAllGames } from '../../redux/games'; import { IconButton } from '../shared/IconButton'; import './GameList.css'; import { GameStatus } from './GameStatus'; import { PlayerCount } from './PlayerCount'; type GameListProps = { games: List, joinGame: (gameId: string) => void, }; const GameListPresenter = ({ games, joinGame }: GameListProps) => ( {games.map((game: Game) => )}
); const GameListHeaderRow = () => ( Name Status Nb Players Join ); const GameListItemRow = ({game, joinGame}) => ( {game.name} ); const JoinButton = ({game, joinGame}) => { const disabled = game.state !== 'LOBBY'; const onClick = () => joinGame(game.id); return ; }; const mapStateToProps = state => ({ games: getAllGames(state.get('games')), }); const mapDispatchToProps = { joinGame: actions.requestJoinGame, }; export const GameList = connect(mapStateToProps, mapDispatchToProps)(GameListPresenter);