refactor(useDraftSocket): clean up reconnect event handling
- Remove redundant reconnect_attempt listener: connect_error already sets isReconnecting(true), and connectionError is never set before reconnect_attempt fires, making that handler a no-op - Wrap reconnect_failed in an Error object so Sentry receives a proper exception with stack trace instead of a plain captureMessage string - Store handleReconnectFailed as a named reference so socket.io.off() removes only this listener rather than all reconnect_failed listeners https://claude.ai/code/session_01TpZ9W111Trkv2g4CkCWFpB
This commit is contained in:
parent
28b89b3444
commit
5742b780fe
1 changed files with 6 additions and 11 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue