import React, { useEffect, useState } from 'react'; /* Style */ import './Play.css'; import { useTheme } from '../Style/ThemeContext'; /* Nav */ import { Link } from 'react-router-dom'; /* Component */ import ButtonImgNav from "../Components/ButtonImgNav" import SessionService from "../services/SessionService"; /* Img */ import Person from '../res/img/Person.png'; /* Icon */ import trophy from '../res/icon/trophy.png'; import param from '../res/icon/param.png'; import share from '../res/icon/share.png'; import { socket } from '../SocketConfig'; import { useNavigate } from 'react-router-dom'; import GameCreator from '../model/GameCreator'; import { useGame } from '../Contexts/GameContext'; <<<<<<< HEAD import { set } from 'lodash'; ======= import ScoreBoard from '../Components/ScoreBoard'; >>>>>>> origin function Play() { const theme=useTheme() const [username, setUsername] = useState(''); const [nbSoloGames, setNbSoloGames] = useState(0); const [soloBestScore, setSoloBestScore] = useState(0); const [soloAverageTry, setSoloAverageTry] = useState(0); useEffect(() => { const fetchUserInformation = async () => { try { const sessionData = await SessionService.getSession(); console.log(sessionData); // Vérifie si il y a une session if (sessionData.user) { setUsername(sessionData.user.pseudo); setNbSoloGames(sessionData.user.soloStats.nbGames); setSoloBestScore(sessionData.user.soloStats.bestScore); setSoloAverageTry(sessionData.user.soloStats.averageTry); } else { // Pas de session on génère un guest random setUsername(`Guest ${Math.floor(Math.random() * 100000)}`); } } catch (error) { console.error(error); } }; fetchUserInformation(); }, []); const { setIndicesData, setPersonData, setPersonNetworkData } = useGame(); const [room, setRoom] = useState(null); const navigate = useNavigate(); function createLobby(){ socket.emit("lobby created") } function launchMastermind(){ const [networkPerson, choosenPerson, choosenIndices] = GameCreator.CreateGame(3, 30) setPersonData(choosenPerson) setPersonNetworkData(networkPerson) setIndicesData(choosenIndices) setIndicesData(choosenIndices) navigate('/game?solo=true'); } useEffect(() => { const handleLobbyCreated = (newRoom: any) => { setRoom(newRoom); }; // Ajouter l'event listener socket.on('lobby created', handleLobbyCreated); // Nettoyer l'event listener lors du démontage du composant return () => { socket.off('lobby created', handleLobbyCreated); }; }, []); // Aucune dépendance ici useEffect(() => { <<<<<<< HEAD if (room !== null) { const nouvelleURL = `/lobby?room=${room}`; navigate(nouvelleURL); } }, [room, navigate]); ======= if (room !== null) { const nouvelleURL = `/lobby?room=${room}`; navigate(nouvelleURL); } }, [room, navigate]); >>>>>>> origin return (