1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- "use strict";
- var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createActorContext = void 0;
- var React = require("react");
- var useInterpret_1 = require("./useInterpret");
- var useActor_1 = require("./useActor");
- var useSelector_1 = require("./useSelector");
- function createActorContext(machine, interpreterOptions, observerOrListener) {
- var ReactContext = React.createContext(null);
- var OriginalProvider = ReactContext.Provider;
- function Provider(_a) {
- var children = _a.children, _b = _a.machine, providedMachine = _b === void 0 ? machine : _b, options = _a.options;
- var actor = (0, useInterpret_1.useInterpret)(providedMachine, __assign(__assign({}, interpreterOptions), options), observerOrListener);
- return React.createElement(OriginalProvider, { value: actor }, children);
- }
- Provider.displayName = "ActorProvider(".concat(machine.id, ")");
- function useContext() {
- var actor = React.useContext(ReactContext);
- if (!actor) {
- throw new Error("You used a hook from \"".concat(Provider.displayName, "\" but it's not inside a <").concat(Provider.displayName, "> component."));
- }
- return actor;
- }
- function useActor() {
- var actor = useContext();
- return (0, useActor_1.useActor)(actor);
- }
- function useSelector(selector, compare) {
- var actor = useContext();
- return (0, useSelector_1.useSelector)(actor, selector, compare);
- }
- return {
- Provider: Provider,
- useActorRef: useContext,
- useActor: useActor,
- useSelector: useSelector
- };
- }
- exports.createActorContext = createActorContext;
|