Skip to content

Commit a53f526

Browse files
committed
fix(ws-hook): set phase and error state on all connection failures
- No auth token: set phase='error', error='Authentication required...' - ws.onerror: set phase='error', error='WebSocket connection error' - Max reconnects: set phase='error' (error was already set) - Catch block: set phase='error', error=err.message - UI components using hasError will now properly show error state
1 parent c60f4e9 commit a53f526

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

frontend/src/hooks/useRepoIndexingWebSocket.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ export function useRepoIndexingWebSocket(
148148
if (!session?.access_token) {
149149
console.error('[WS] No auth token available')
150150
setConnectionState('error')
151+
setPhase('error')
152+
setError('Authentication required - no access token')
151153
return
152154
}
153155

@@ -173,6 +175,8 @@ export function useRepoIndexingWebSocket(
173175

174176
ws.onerror = () => {
175177
setConnectionState('error')
178+
setPhase('error')
179+
setError('WebSocket connection error')
176180
}
177181

178182
ws.onclose = (event) => {
@@ -193,12 +197,15 @@ export function useRepoIndexingWebSocket(
193197
}, delay)
194198
} else {
195199
setConnectionState('error')
200+
setPhase('error')
196201
setError('Connection failed after multiple attempts')
197202
}
198203
}
199204
} catch (err) {
200205
console.error('[WS] Connection error:', err)
201206
setConnectionState('error')
207+
setPhase('error')
208+
setError(err instanceof Error ? err.message : 'Failed to create WebSocket')
202209
}
203210
}, [session?.access_token, cleanup, handleMessage])
204211

0 commit comments

Comments
 (0)