feat: Pause/resume draft timers on host disconnect/reconnect and enable explicit player room departure.

This commit is contained in:
2025-12-16 21:37:37 +01:00
parent b9c5905474
commit 1c3758712d
5 changed files with 130 additions and 47 deletions

View File

@@ -82,12 +82,18 @@ export const GameRoom: React.FC<GameRoomProps> = ({ room: initialRoom, currentPl
setModalOpen(true);
};
const handleGameUpdate = (data: any) => {
setGameState(data);
};
socket.on('draft_update', handleDraftUpdate);
socket.on('draft_error', handleDraftError);
socket.on('game_update', handleGameUpdate);
return () => {
socket.off('draft_update', handleDraftUpdate);
socket.off('draft_error', handleDraftError);
socket.off('game_update', handleGameUpdate);
};
}, []);

View File

@@ -182,12 +182,12 @@ export const LobbyManager: React.FC<LobbyManagerProps> = ({ generatedPacks }) =>
const handleExitRoom = () => {
if (activeRoom) {
socketService.socket.emit('leave_room', { roomId: activeRoom.id, playerId });
}
setActiveRoom(null);
setInitialDraftState(null);
localStorage.removeItem('active_room_id');
// Also likely want to disconnect socket or leave room specifically if needed,
// but just clearing local state allows creating new rooms.
// Ideally: socketService.emit('leave_room', { roomId: activeRoom.id, playerId });
};
if (activeRoom) {