feat: Pause/resume draft timers on host disconnect/reconnect and enable explicit player room departure.
This commit is contained in:
@@ -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);
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user