UNPKG

@rivetkit/react

Version:

_Lightweight Libraries for Backends_

57 lines (52 loc) 1.89 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/mod.ts var _frameworkbase = require('@rivetkit/framework-base'); var _reactstore = require('@tanstack/react-store'); var _react = require('react'); var _client = require('@rivetkit/core/client'); function createRivetKit(client, opts = {}) { const { getOrCreateActor } = _frameworkbase.createRivetKit.call(void 0, client, opts); function useActor(opts2) { const { mount, setState, state } = getOrCreateActor(opts2); _react.useEffect.call(void 0, () => { setState((prev) => { prev.opts = { ...opts2, enabled: _nullishCoalesce(opts2.enabled, () => ( true)) }; return prev; }); }, [opts2, setState]); _react.useEffect.call(void 0, () => { return mount(); }, [mount]); const actorState = _reactstore.useStore.call(void 0, state) || {}; function useEvent(eventName, handler) { const ref = _react.useRef.call(void 0, handler); const actorState2 = _reactstore.useStore.call(void 0, state) || {}; _react.useEffect.call(void 0, () => { ref.current = handler; }, [handler]); _react.useEffect.call(void 0, () => { if (!(actorState2 == null ? void 0 : actorState2.connection)) return; function eventHandler(...args) { ref.current(...args); } return actorState2.connection.on(eventName, eventHandler); }, [ actorState2.connection, actorState2.isConnected, actorState2.hash, eventName ]); } return { ...actorState, useEvent }; } return { useActor }; } exports.createClient = _client.createClient; exports.createRivetKit = createRivetKit; //# sourceMappingURL=mod.js.map