import { Icon } from "@iconify/react"; import { Grid, List, Typography } from "@mui/material"; import { useAtomValue } from "jotai"; import { boardAtom, engineMultiPvAtom, engineNameAtom, gameAtom, } from "../states"; import LineEvaluation from "./lineEvaluation"; import { useCurrentPosition } from "../hooks/useCurrentPosition"; import { LineEval } from "@/types/eval"; import EngineSettingsButton from "@/sections/engineSettings/engineSettingsButton"; import Accuracies from "./accuracies"; import MoveInfo from "./moveInfo"; import Opening from "./opening"; export default function ReviewPanelBody() { const linesNumber = useAtomValue(engineMultiPvAtom); const engineName = useAtomValue(engineNameAtom); const position = useCurrentPosition(engineName); const game = useAtomValue(gameAtom); const board = useAtomValue(boardAtom); const boardHistory = board.history(); const gameHistory = game.history(); const isGameOver = boardHistory.length > 0 && (board.isCheckmate() || board.isDraw() || boardHistory.join() === gameHistory.join()); const linesSkeleton: LineEval[] = Array.from({ length: linesNumber }).map( (_, i) => ({ pv: [`${i}`], depth: 0, multiPv: i + 1 }) ); const engineLines = position?.eval?.lines?.length ? position.eval.lines : linesSkeleton; return ( Engine evaluation {isGameOver && ( Game is over )} {!board.isCheckmate() && engineLines.map((line) => ( ))} ); }