diff --git a/src/App.js b/src/App.js index 49dd35a..345dbb8 100644 --- a/src/App.js +++ b/src/App.js @@ -60,15 +60,20 @@ function Board({ xIsNext, squares, onPlay }) { function App() { const [xIsNext, setXIsNext] = useState(true); const [history, setHistory] = useState([Array(9).fill(null)]); - const currentSquares = history[history.length - 1]; + const [currentMove, setCurrentMove] = useState(0); + const currentSquares = history[currentMove]; function handlePlay(nextSquares) { - setHistory([...history, nextSquares]); + const nextHistory = [...history.slice(0, currentMove + 1), nextSquares]; + setHistory(nextHistory); + setCurrentMove(nextHistory.length - 1); setXIsNext(!xIsNext); } function jumpTo(nextMove) { - // TODO + setCurrentMove(nextMove); + setHistory(history.slice(0, nextMove+1)); + setXIsNext(nextMove % 2 === 0); } const moves = history.map((squares, move) => { @@ -79,7 +84,7 @@ function App() { description = 'Go to game start'; } return ( -