react-chess
Version:
Renders a chess board using React
40 lines (32 loc) • 918 B
JavaScript
const React = require('react')
const Chess = require('../../src/react-chess')
require('./demo.css')
class Demo extends React.PureComponent {
constructor(props) {
super(props)
this.state = {pieces: Chess.getDefaultLineup()}
this.handleMovePiece = this.handleMovePiece.bind(this)
}
handleMovePiece(piece, fromSquare, toSquare) {
const newPieces = this.state.pieces
.map((curr, index) => {
if (piece.index === index) {
return `${piece.name}@${toSquare}`
} else if (curr.indexOf(toSquare) === 2) {
return false // To be removed from the board
}
return curr
})
.filter(Boolean)
this.setState({pieces: newPieces})
}
render() {
const {pieces} = this.state
return (
<div className="demo">
<Chess pieces={pieces} onMovePiece={this.handleMovePiece} />
</div>
)
}
}
module.exports = Demo