diff --git a/app/hooks/useDraftSocket.ts b/app/hooks/useDraftSocket.ts index 2813160..0fd4b22 100644 --- a/app/hooks/useDraftSocket.ts +++ b/app/hooks/useDraftSocket.ts @@ -64,7 +64,7 @@ export function useDraftSocket(seasonId: string, teamId?: string): UseDraftSocke }); socket.on("connect_error", (error) => { - logger.error("Socket.IO connection error:", error); + logger.log("Socket.IO connection error:", error); // Don't set connectionError here — reconnect_attempt fires immediately after // and would clear it again, causing the error overlay to flicker on every // retry. Only show a hard error once all attempts are exhausted (reconnect_failed). @@ -72,17 +72,13 @@ export function useDraftSocket(seasonId: string, teamId?: string): UseDraftSocke setIsReconnecting(true); }); - socket.io.on("reconnect_attempt", () => { - logger.log("Attempting to reconnect..."); - setIsReconnecting(true); - setConnectionError(null); - }); - - socket.io.on("reconnect_failed", () => { - logger.error("Reconnection failed"); + const handleReconnectFailed = () => { + logger.error(new Error("Socket.IO reconnection failed after max attempts")); setConnectionError("Failed to reconnect. Please refresh the page."); setIsReconnecting(false); - }); + }; + + socket.io.on("reconnect_failed", handleReconnectFailed); const handleOffline = () => { // Mark as reconnecting immediately — the OS fires this before Socket.IO's @@ -119,8 +115,7 @@ export function useDraftSocket(seasonId: string, teamId?: string): UseDraftSocke document.addEventListener("visibilitychange", handleVisibilityChange); return () => { - socket.io.off("reconnect_attempt"); - socket.io.off("reconnect_failed"); + socket.io.off("reconnect_failed", handleReconnectFailed); window.removeEventListener("offline", handleOffline); window.removeEventListener("online", handleReturn); document.removeEventListener("visibilitychange", handleVisibilityChange);