From f7929b10efdd15b822c300a7b1b837dfc2e8244c Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Sat, 29 Nov 2025 01:49:30 +0530 Subject: [PATCH] DRY --- src/tictactoe/TicTacToe.tsx | 47 ++++++++++++++----------------------- 1 file changed, 17 insertions(+), 30 deletions(-) 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); } // ------------------------------------------