UNPKG

@blocklet/ui-react

Version:

Some useful front-end web components that can be used in Blocklets.

27 lines (26 loc) 767 B
import { use as s } from "react"; import { WsClient as o } from "@arcblock/ws"; import { SessionContext as n } from "@arcblock/did-connect/lib/Session"; import { joinURL as f } from "ufo"; import { BLOCKLET_SERVICE_PATH_PREFIX as m } from "@arcblock/ux/lib/Util/constant"; const e = {}; function a(t = "admin") { let r = "/"; !window?.blocklet && window?.env?.apiPrefix && (r = window.env.apiPrefix); const i = f(r, m, t); return new o(i, { heartbeatIntervalMs: 100 * 1e3 }); } function c(t = "admin") { return e[t] || (e[t] = a(t)), e[t]; } const P = (t = "admin") => { const r = s(n), { session: i } = r ?? {}; return !e[t] && i.user && (e[t] = c(t), e[t].connect()), e[t]; }; export { a as create, c as default, P as useListenWsClient };