import * as React from "react"; import { FunctionComponent } from "react"; import { Context } from "../../context/context"; import BoardViewModel from "../../viewmodel/BoardViewModel"; import PitViewModel from "../../viewmodel/PitViewModel"; import PitView from "./PitView"; import StoreView from "./StoreView"; import { Game } from "../../models/Game"; import { Pit } from "mancala.js"; const BoardView: FunctionComponent<{ game: Game; context: Context; boardId: string; boardViewModel: BoardViewModel; revert: boolean; onPitSelect: (index: number, pit: Pit) => void; }> = ({ game, context, boardId, boardViewModel, revert, onPitSelect: onPitSelect }) => { const mancalaGame = game?.mancalaGame; const theme = context.themeManager.theme; const createPitView = (key: any, pit: Pit, pitViewModel: PitViewModel) => { return onPitSelect(pit.index, pit)} />; }; const createPitViewList = (pits: Pit[]) => pits.map((pit, index) => createPitView(index, pit, boardViewModel.pits[pit.index])); const player1Pits = createPitViewList(mancalaGame?.board.player1Pits); const player2Pits = createPitViewList(mancalaGame?.board.player2Pits); const player1BankIndex = mancalaGame?.board.player1BankIndex(); const player2BankIndex = mancalaGame?.board.player2BankIndex(); const player1BankViewModel = boardViewModel.pits[player1BankIndex]; const player2BankViewModel = boardViewModel.pits[player2BankIndex]; return (
{revert ? player1Pits?.reverse() : player2Pits?.reverse()} {revert ? player2Pits : player1Pits}
); }; export default BoardView;