diff --git a/webapp/src/pages/Stats/Stats.js b/webapp/src/pages/Stats/Stats.js index 7ee9da5b..f9e5117c 100644 --- a/webapp/src/pages/Stats/Stats.js +++ b/webapp/src/pages/Stats/Stats.js @@ -1,9 +1,8 @@ -import React, { useState, useEffect } from 'react'; -import axios from 'axios'; -import Nav from '../../components/Nav/Nav.js'; -import Footer from '../../components/Footer/Footer.js'; -import './Stats.css'; - +import React, { useState, useEffect } from "react"; +import axios from "axios"; +import Nav from "../../components/Nav/Nav.js"; +import Footer from "../../components/Footer/Footer.js"; +import "./Stats.css"; const Stats = () => { const [username, setUsername] = useState(localStorage.username); @@ -11,7 +10,6 @@ const Stats = () => { const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(null); - const fetchStats = () => { setIsLoading(true); fetch(`http://localhost:8001/getstats?user=${username}`) @@ -21,97 +19,134 @@ const Stats = () => { setIsLoading(false); }) .catch((error) => { - console.error('Error al obtener las preguntas:', error); - setError(error.message || 'Ha ocurrido un error al obtener las estadísticas'); + console.error("Error al obtener las preguntas:", error); + setError( + error.message || "Ha ocurrido un error al obtener las estadísticas" + ); setIsLoading(false); }); }; useEffect(() => { - fetch(`http://localhost:8001/getstats?user=${username}`) - .then((response) => response.json()) - .then((data) => { - setStats(data); - setIsLoading(false); - }) - .catch((error) => { - console.error('Error al obtener las preguntas:', error); - setIsLoading(false); - }); + const delayDebounceFn = setTimeout(() => { + fetch(`http://localhost:8001/getstats?user=${username}`) + .then((response) => response.json()) + .then((data) => { + setStats(data); + setIsLoading(false); + }) + .catch((error) => { + console.error("Error al obtener las preguntas:", error); + setIsLoading(false); + }); + }, 2000); + return () => clearTimeout(delayDebounceFn); }, [username]); const handleUsernameChange = (event) => { setUsername(event.target.value); }; - - const handleSearch = () => { - if (username.trim() !== '') { - fetchStats(); - } - }; if (isLoading) { - return
Se está consultando su búsqueda, espere unos instantes.
-Se está consultando su búsqueda, espere unos instantes.
+Por favor compruebe si los valores del formulario son correctos e inténtelo de nuevo
-+ Por favor compruebe si los valores del formulario son correctos e + inténtelo de nuevo +
+ + + > + ); } return ( <> - -El usuario no ha jugado ninguna partida.
Usuario: {stats.username}
-Juegos Jugados: {stats.nGamesPlayed}-
Promedio de Puntos: {stats.avgPoints}-
Puntos Totales: {stats.totalPoints}-
Preguntas Correctas Totales: {stats.totalCorrectQuestions}-
Preguntas Incorrectas Totales: {stats.totalIncorrectQuestions}-
Ratio Correctas/Incorrectas: {stats.ratioCorrectToIncorrect}-
Tiempo por pregunta (s): {stats.avgTime}-
+ Usuario: + {stats.username} +
++ {" "} + Juegos Jugados: + {stats.nGamesPlayed} ++
+ {" "} + Promedio de Puntos: + {stats.avgPoints} ++
+ {" "} + Puntos Totales: + {stats.totalPoints} ++
+ {" "} + Preguntas Correctas Totales: + {stats.totalCorrectQuestions} ++
+ {" "} + Preguntas Incorrectas Totales: + {stats.totalIncorrectQuestions} ++
+ {" "} + Ratio Correctas/Incorrectas: + {stats.ratioCorrectToIncorrect} ++
+ {" "} + Tiempo por pregunta (s): + {stats.avgTime} ++