diff --git a/src/tictactoe/TicTacToe.tsx b/src/tictactoe/TicTacToe.tsx index 505cad3..91dc3c6 100644 --- a/src/tictactoe/TicTacToe.tsx +++ b/src/tictactoe/TicTacToe.tsx @@ -18,6 +18,21 @@ export default function TicTacToe() { // const [openMatches, setOpenMatches] = useState([]); const [players, setPlayers] = useState([]); + function onMatchDataCallback(msg: { opCode: number; data: any }) { + console.log("[Match Data]", msg); + + if (msg.opCode === 2) { + const state = msg.data; + console.log("Match state:", state); + + setBoard(state.board); + setTurn(state.turn); + setWinner(state.winner || null); + + // new: + setPlayers(state.players || []); + } + } const { loginOrRegister, joinMatchmaker, @@ -29,21 +44,7 @@ export default function TicTacToe() { } = useNakama(); useEffect(() => { - onMatchData((msg) => { - console.log("[Match Data]", msg); - - if (msg.opCode === 2) { - const state = msg.data; - console.log("Match state:", state); - - setBoard(state.board); - setTurn(state.turn); - setWinner(state.winner || null); - - // new: - setPlayers(state.players || []); - } - }); + onMatchData(onMatchDataCallback); }, [onMatchData]); // useEffect(() => { @@ -72,21 +73,7 @@ export default function TicTacToe() { await loginOrRegister(username); // Match data listener - onMatchData((msg) => { - console.log("[Match Data]", msg); - - if (msg.opCode === 2) { - const state = msg.data; - console.log("Match state:", state); - - setBoard(state.board); - setTurn(state.turn); - setWinner(state.winner || null); - - // new: - setPlayers(state.players || []); - } - }); + onMatchData(onMatchDataCallback); } // ------------------------------------------