@rivetkit/react
Version:
_Lightweight Libraries for Backends_
57 lines (52 loc) • 1.89 kB
JavaScript
;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