UNPKG

@bigmi/react

Version:

React primitives for Bitcoin apps.

45 lines (44 loc) 1.51 kB
"use client"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); let react = require("react"); let _bigmi_client = require("@bigmi/client"); //#region src/hydrate.ts function hydrate(config, parameters) { const { initialState, reconnectOnMount } = parameters; if (initialState && !config._internal.store.persist.hasHydrated()) config.setState({ ...initialState, chainId: config.chains.some((x) => x.id === initialState.chainId) ? initialState.chainId : config.chains[0].id, connections: reconnectOnMount ? initialState.connections : /* @__PURE__ */ new Map(), status: reconnectOnMount ? "reconnecting" : "disconnected" }); return { async onMount() { if (config._internal.ssr) await config._internal.store.persist.rehydrate(); if (reconnectOnMount) (0, _bigmi_client.reconnect)(config); else if (config.storage) config.setState((x) => ({ ...x, connections: /* @__PURE__ */ new Map() })); } }; } function Hydrate(parameters) { const { children, config, initialState, reconnectOnMount = true } = parameters; const { onMount } = hydrate(config, { initialState, reconnectOnMount }); if (!config._internal.ssr) onMount(); const active = (0, react.useRef)(true); (0, react.useEffect)(() => { if (!active.current) return; if (!config._internal.ssr) return; onMount(); return () => { active.current = false; }; }, []); return children; } //#endregion exports.Hydrate = Hydrate; exports.hydrate = hydrate; //# sourceMappingURL=hydrate.js.map