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'; function Play() { const theme=useTheme() const [username, setUsername] = useState(''); 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); } 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(5, 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(() => { if (room !== null) { const nouvelleURL = `/lobby?room=${room}`; navigate(nouvelleURL); } }, [room, navigate]); return (
{/* */}

{username}

Person
Person2

Partie Jouées :
Partie gagnées :
Pions posés :

10
2
45

{/* */}
); } export default Play;