onix-chess-game
Version:
Chess game board
40 lines (38 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBoardStore = exports.boardReducer = void 0;
const onix_board_assets_1 = require("onix-board-assets");
const redux_1 = require("redux");
const BoardActions_1 = require("./BoardActions");
const onix_chess_1 = require("onix-chess");
const INITIAL_STATE = {
is3d: false,
size: onix_board_assets_1.BoardSize.Normal,
piece: "alpha",
square: "color-brown",
orientation: 'white',
coordinates: true,
};
const boardReducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case BoardActions_1.FLIP_BOARD:
const { orientation } = state;
const bwOrientation = onix_chess_1.Color.fromName(orientation);
return Object.assign(Object.assign({}, state), { orientation: onix_chess_1.Color.toName(onix_chess_1.Color.flip(bwOrientation)) });
case BoardActions_1.SET_COORDS:
const { coordinates } = state;
return Object.assign(Object.assign({}, state), { coordinates: !coordinates });
case BoardActions_1.CHANGE_SIZE:
return Object.assign(Object.assign({}, state), { size: action.size });
case BoardActions_1.SET_PIECE:
return Object.assign(Object.assign({}, state), { piece: action.piece });
case BoardActions_1.SET_SQUARE:
return Object.assign(Object.assign({}, state), { square: action.square });
default:
return state;
}
};
exports.boardReducer = boardReducer;
const createBoardStore = (preloadedState) => redux_1.createStore(exports.boardReducer, preloadedState);
exports.createBoardStore = createBoardStore;
//# sourceMappingURL=BoardReducer.js.map