UNPKG

@fishjam-cloud/react-client

Version:
36 lines (35 loc) 1.28 kB
import { useEffect, useState } from "react"; export const usePeerStatus = (client) => { const [peerStatus, setPeerStatus] = useState("idle"); useEffect(() => { const setConnecting = () => { setPeerStatus("connecting"); }; const setError = () => { setPeerStatus("error"); }; const setJoined = () => { setPeerStatus("connected"); }; const setDisconnected = () => { setPeerStatus("idle"); }; client.on("connectionStarted", setConnecting); client.on("reconnected", setJoined); client.on("joined", setJoined); client.on("authError", setError); client.on("joinError", setError); client.on("connectionError", setError); client.on("disconnected", setDisconnected); return () => { client.off("connectionStarted", setConnecting); client.off("reconnected", setJoined); client.off("joined", setJoined); client.off("authError", setError); client.off("joinError", setError); client.off("connectionError", setError); client.off("disconnected", setDisconnected); }; }, [client, setPeerStatus]); return peerStatus; };