Download packages/client/src/hooks/useWebSocket.ts from E5K7/asipilot: direct link, hf CLI and curl.
- Browser
- Download file 718 Bytes
-
https://huggingface.co/spaces/E5K7/asipilot/resolve/main/packages/client/src/hooks/useWebSocket.ts
- Command line
-
hf download hf://spaces/E5K7/asipilot/packages/client/src/hooks/useWebSocket.ts
-
curl -L -o useWebSocket.ts https://huggingface.co/spaces/E5K7/asipilot/resolve/main/packages/client/src/hooks/useWebSocket.ts
718 Bytes
| import { useEffect, useRef, useState, useCallback } from 'react'; | |
| import { getSocket } from '@/services/socket'; | |
| export function useWebSocket() { | |
| const [isConnected, setIsConnected] = useState(false); | |
| const socketRef = useRef(getSocket()); | |
| useEffect(() => { | |
| const socket = socketRef.current; | |
| const onConnect = () => setIsConnected(true); | |
| const onDisconnect = () => setIsConnected(false); | |
| socket.on('connect', onConnect); | |
| socket.on('disconnect', onDisconnect); | |
| if (socket.connected) setIsConnected(true); | |
| return () => { | |
| socket.off('connect', onConnect); | |
| socket.off('disconnect', onDisconnect); | |
| }; | |
| }, []); | |
| return { socket: socketRef.current, isConnected }; | |
| } | |