kawkab-frontend
Version:
Kawkab frontend is a frontend library for the Kawkab framework
21 lines (20 loc) • 712 B
JavaScript
import { useState, useEffect, useRef } from 'react';
import { socket } from '../index.js';
export function useSocket() {
const socketRef = useRef(socket);
const [isConnected, setIsConnected] = useState(socketRef.current?.isConnected || false);
useEffect(() => {
const s = socketRef.current;
if (!s)
return;
const onConnect = () => setIsConnected(true);
const onDisconnect = () => setIsConnected(false);
s.on('open', onConnect);
s.on('close', onDisconnect);
return () => {
s.off('open', onConnect);
s.off('close', onDisconnect);
};
}, []);
return { socket: socketRef.current, isConnected };
}