import React from "react"; import _ from "lodash"; import { connect } from "react-redux"; import classNames from "classnames"; import ChessBoardSquare from "./chess-board-square"; import RankLabels from "./rank-labels"; import FileLabels from "./file-labels"; class ChessBoard extends React.Component { componentWillMount() { const { gameId, store } = this.props; } getTurn() { const { store } = this.props; return store.getState().turn; } getBoard() { const { store } = this.props; return store.getState().board; } getPlayer() { const { store } = this.props; return store.getState().player; } files(rank) { const player = this.getPlayer(); switch (player) { case "white": return Object.keys(rank).sort(); case "black": return Object.keys(rank) .sort() .reverse(); } } ranks() { const board = this.getBoard(); const player = this.getPlayer(); switch (player) { case "white": return Object.keys(board).reverse(); case "black": return Object.keys(board); } } renderSquares() { const board = this.getBoard(); const { store, channel } = this.props; return _.map(this.ranks(), (rankId) => { const rank = this.getBoard()[rankId]; return _.map(this.files(rank), (fileId) => { return ( ); }); }); } get gameState() { const { store } = this.props; console.log(store.getState().state); return store.getState().state; } get boardClass() { const turn = this.getTurn(); const player = this.getPlayer(); return classNames("board", turn + "-to-move", "player-is-" + player); } render() { return (
{this.renderSquares()}
{this.gameState}
); } } function mapStateToProps(state) { return { board: state.board, selectedSquare: state.selectedSquare, }; } export default connect(mapStateToProps)(ChessBoard);