'object' user contenant toutes les infos pour affichage nom, stats etc + correctif page endgame solo

pull/81/head
Baptiste MARCEL 1 year ago
parent 9f43096b19
commit 3ec19aadea

@ -28,6 +28,12 @@ function EndGame() {
const {winner, person, players, indices} =useGame() const {winner, person, players, indices} =useGame()
console.log(winner) console.log(winner)
let indice = indices[0]
const index = players.findIndex((p) => p.id == winner?.id)
if (index != -1) {
indice = indices[index]
}
const theme = useTheme(); const theme = useTheme();
return ( return (
<div> <div>
@ -39,7 +45,7 @@ function EndGame() {
</div> </div>
<div className='winner'> <div className='winner'>
<img src={Person} width='300' height='300'/> <img src={Person} width='300' height='300'/>
<h3>{indices[players.findIndex((p) => p.id == winner?.id)].ToString("fr")}</h3> <h3>{indice.ToString("fr")}</h3>
</div> </div>
<div className='bottom'> <div className='bottom'>
<div className='centerDivH'> <div className='centerDivH'>

@ -22,11 +22,15 @@ import { socket } from '../SocketConfig';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import GameCreator from '../model/GameCreator'; import GameCreator from '../model/GameCreator';
import { useGame } from '../Contexts/GameContext'; import { useGame } from '../Contexts/GameContext';
import { set } from 'lodash';
function Play() { function Play() {
const theme=useTheme() const theme=useTheme()
const [username, setUsername] = useState(''); const [username, setUsername] = useState('');
const [nbSoloGames, setNbSoloGames] = useState(0);
const [soloBestScore, setSoloBestScore] = useState(0);
const [soloAverageTry, setSoloAverageTry] = useState(0);
useEffect(() => { useEffect(() => {
const fetchUserInformation = async () => { const fetchUserInformation = async () => {
@ -37,6 +41,9 @@ function Play() {
// Vérifie si il y a une session // Vérifie si il y a une session
if (sessionData.user) { if (sessionData.user) {
setUsername(sessionData.user.pseudo); setUsername(sessionData.user.pseudo);
setNbSoloGames(sessionData.user.soloStats.nbGames);
setSoloBestScore(sessionData.user.soloStats.bestScore);
setSoloAverageTry(sessionData.user.soloStats.averageTry);
} else { } else {
// Pas de session on génère un guest random // Pas de session on génère un guest random
setUsername(`Guest ${Math.floor(Math.random() * 100000)}`); setUsername(`Guest ${Math.floor(Math.random() * 100000)}`);
@ -130,16 +137,16 @@ function Play() {
<div className='textBoard'> <div className='textBoard'>
<div> <div>
<h4> <h4>
Partie Jouées : <br/> Parties jouées : <br/>
Partie gagnées : <br/> High-Score : <br/>
Pions posés : <br/> Nombre d'essaie moyen : <br/>
</h4> </h4>
</div> </div>
<div> <div>
<h4> <h4>
10 <br/> {nbSoloGames} <br/>
2 <br/> {soloBestScore} <br/>
45 <br/> {soloAverageTry} <br/>
</h4> </h4>
</div> </div>
</div> </div>

@ -2,18 +2,30 @@ const DatabaseService = require('../services/DatabaseService');
class SessionController { class SessionController {
static async getUserInformation(req, res) { static async getUserInformation(req, res) {
const db = new DatabaseService();
try{ try{
console.log(req.session); await db.connect();
if (!req.session.user) { if (!req.session.user) {
res.status(200).json({ message: 'User not found' }); res.status(200).json({ error: "true", message: 'User not found' });
return; return;
} }
req.session.user.soloStats = await db.getSoloStatsByUserId(req.session.user.idUser);
req.session.user.onlineStats = await db.getOnlineStatsByUserId(req.session.user.idUser);
console.log(req.session.user);
res.status(200).json({ user: req.session.user }); res.status(200).json({ user: req.session.user });
} }
catch(error){ catch(error){
console.error(error); console.error(error);
res.status(500).json({ error: 'Erreur lors de la récupération de l\'utilisateur.' }); res.status(500).json({ error: 'Erreur lors de la récupération de l\'utilisateur.' });
} }
finally{
await db.disconnect();
}
} }
} }

Loading…
Cancel
Save