UNPKG

@rivetkit/react

Version:

React hooks and components for RivetKit client applications

59 lines (49 loc) 1.81 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/mod.ts var _frameworkbase = require('@rivetkit/framework-base'); var _reactstore = require('@tanstack/react-store'); var _react = require('react'); var _client = require('rivetkit/client'); function createRivetKit(clientInput, opts = {}) { return createRivetKitWithClient( _client.createClient.call(void 0, clientInput), opts ); } function createRivetKitWithClient(client, opts = {}) { const { getOrCreateActor } = _frameworkbase.createRivetKit.call(void 0, client, opts); function useActor(opts2) { const { mount, state } = getOrCreateActor(opts2); _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.connStatus, actorState2.hash, eventName ]); } return { ...actorState, useEvent }; } return { useActor }; } exports.ActorConnDisposed = _client.ActorConnDisposed; exports.createClient = _client.createClient; exports.createRivetKit = createRivetKit; exports.createRivetKitWithClient = createRivetKitWithClient; //# sourceMappingURL=mod.js.map