1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/app/components/chess-board-square.js
2016-12-08 17:46:28 +01:00

53 lines
1.2 KiB
JavaScript

import React from "react";
import classNames from "classnames";
import { selectPiece } from "store/actions";
class ChessBoardSquare extends React.Component {
constructor(props) {
super(props);
this.selectSquare = this.selectSquare.bind(this);
}
squareCoords() {
return { rank: this.props.rank, file: this.props.file };
}
selectSquare() {
var { store } = this.props;
console.log(`Clicked: ${this.props.file}${this.props.rank}`);
if (this.props.piece != undefined) {
store.dispatch(selectPiece(this.squareCoords()));
}
console.log(store.getState().selectedSquare);
};
isSelectedSquare() {
var { store } = this.props;
return this.squareCoords().rank == store.getState().selectedSquare.rank
&& this.squareCoords().file == store.getState().selectedSquare.file;
}
render() {
if (this.props.piece == undefined) {
var squareClass = "board-square";
}
else {
var squareClass = classNames(
"board-square",
this.props.piece.type,
this.props.piece.colour,
{ "selected": this.isSelectedSquare() }
)
}
return <div className={squareClass} onClick={this.selectSquare} />
}
}
export default ChessBoardSquare;