import { useContext } from "react"; import { WsContext } from "./ws-context.js"; import type { WsClient } from "./ws-client.js"; export const useWsClient = (): WsClient => { const ctx = useContext(WsContext); if (!ctx) { throw new Error("useWsClient must be used within a WsProvider"); } return ctx.client; }; export const useWsConnected = (): boolean => { const ctx = useContext(WsContext); if (!ctx) { throw new Error("useWsConnected must be used within a WsProvider"); } return ctx.isConnected; }; export const useWsConnect = (): ((url: string) => Promise) => { const ctx = useContext(WsContext); if (!ctx) { throw new Error("useWsConnect must be used within a WsProvider"); } return ctx.connect; }; export const useWsDisconnect = (): (() => void) => { const ctx = useContext(WsContext); if (!ctx) { throw new Error("useWsDisconnect must be used within a WsProvider"); } return ctx.disconnect; };