diff --git a/src/context/GameContext.js b/src/context/GameContext.js index 20a9d3f..6158edd 100644 --- a/src/context/GameContext.js +++ b/src/context/GameContext.js @@ -1,4 +1,4 @@ -import { createContext, useEffect, useState } from "react"; +import { createContext, useEffect, useState, useCallback } from "react"; // import chantierAtmopshere from "../assets/sounds/chantier_1.mp3"; import GameAnswerExplanation from "../components/game/GameAnswerExplanation.jsx"; import { useUser } from "../hooks/useUser.jsx"; @@ -32,13 +32,7 @@ export function GameContextProvider({ children }) { const [isGameComplete, setIsGameComplete] = useState(false); // ##### INIT DATAS ##### - useEffect(() => { - if (!contextGameDatas) return; - initAnswers(); - setRemainingQuestionsAmount(contextGameDatas.gameObjects.length); - }, [contextGameDatas]); - - function initAnswers() { + const initAnswers = useCallback(() => { const answersArray = contextGameDatas.gameObjects.map((object, key) => { return { correctAnswer: object.attrs.behaviourType ? object.attrs.behaviourType : "unsafe", @@ -47,7 +41,13 @@ export function GameContextProvider({ children }) { }; }); setAnswers(answersArray); - } + }, [contextGameDatas]); + + useEffect(() => { + if (!contextGameDatas) return; + initAnswers(); + setRemainingQuestionsAmount(contextGameDatas.gameObjects.length); + }, [contextGameDatas, initAnswers]); function answerQuestion(answerKey, answer) { if (!answer || answerKey === null) return;