UNPKG

@bigmi/react

Version:

React primitives for Bitcoin apps.

43 lines (42 loc) 1.38 kB
"use client"; import { useEffect, useRef } from "react"; import { reconnect } from "@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) 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 = useRef(true); useEffect(() => { if (!active.current) return; if (!config._internal.ssr) return; onMount(); return () => { active.current = false; }; }, []); return children; } //#endregion export { Hydrate, hydrate }; //# sourceMappingURL=hydrate.js.map