/** * React integration for webrtc-mesh — auto-init, expose peer list, send helper. */ import { useEffect, useState, useCallback } from 'react' import { initWebRTC, getWebRTCPeers, getWebRTCPeerId, onWebRTC, sendWebRTC, type WebRTCPeer } from '../lib/webrtc-mesh' export function useWebRTC(enabled: boolean = true) { const [peers, setPeers] = useState([]) const [selfId] = useState(() => getWebRTCPeerId()) useEffect(() => { if (!enabled) return initWebRTC().catch(() => {}) const refresh = () => setPeers(getWebRTCPeers()) refresh() const iv = setInterval(refresh, 5000) const unsub = onWebRTC(() => refresh()) return () => { clearInterval(iv); unsub() } }, [enabled]) const send = useCallback((msg: string) => sendWebRTC(msg), []) return { peers, selfId, send } }