fix: Resolver bucle infinito de reconexiones
- Agregar bandera hasReconnected para ejecutar reconexión solo una vez - Evita que el useEffect se ejecute infinitamente - Reduce carga del servidor significativamente
This commit is contained in:
@@ -37,10 +37,11 @@ export default function Home() {
|
|||||||
|
|
||||||
const [passwordPromptRoomId, setPasswordPromptRoomId] = useState<string | null>(null);
|
const [passwordPromptRoomId, setPasswordPromptRoomId] = useState<string | null>(null);
|
||||||
const [joinPassword, setJoinPassword] = useState('');
|
const [joinPassword, setJoinPassword] = useState('');
|
||||||
|
const [hasReconnected, setHasReconnected] = useState(false);
|
||||||
|
|
||||||
// Restaurar sesión al cargar
|
// Restaurar sesión al cargar - SOLO UNA VEZ
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (session && isConnected) {
|
if (session && isConnected && !hasReconnected) {
|
||||||
setPlayerName(session.playerName);
|
setPlayerName(session.playerName);
|
||||||
setFullPlayerName(session.fullPlayerName);
|
setFullPlayerName(session.fullPlayerName);
|
||||||
setView(session.currentView);
|
setView(session.currentView);
|
||||||
@@ -51,8 +52,10 @@ export default function Home() {
|
|||||||
} else if (session.currentView === 'lobby') {
|
} else if (session.currentView === 'lobby') {
|
||||||
actions.refreshRooms();
|
actions.refreshRooms();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setHasReconnected(true);
|
||||||
}
|
}
|
||||||
}, [session, isConnected]);
|
}, [session, isConnected, hasReconnected]);
|
||||||
|
|
||||||
// Efecto para cambiar a vista de juego cuando el servidor nos une
|
// Efecto para cambiar a vista de juego cuando el servidor nos une
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user