mobx-react-lite
Version:
Lightweight React bindings for MobX based on React 16.8+ and Hooks
3 lines (2 loc) • 4.76 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("mobx"),require("react"),require("react-dom"),require("use-sync-external-store/shim")):"function"==typeof define&&define.amd?define(["exports","mobx","react","react-dom","use-sync-external-store/shim"],t):t((e=e||self).mobxReactLite={},e.mobx,e.React,e.ReactDOM,e.shim)}(this,(function(e,t,r,n,o){"use strict";var i="default"in r?r.default:r;if(!r.useState)throw new Error("mobx-react-lite requires React with Hooks support");if(!t.makeObservable)throw new Error("mobx-react-lite@3 requires mobx at least version 6 to be available");function a(e){e()}function u(e){e||(e=a),t.configure({reactionScheduler:e})}function s(e){return t.getDependencyTree(e)}var c=!1;function f(e){c=e}function l(){return c}var d,p,b=new("undefined"!=typeof FinalizationRegistry?FinalizationRegistry:function(){function e(e){var t=this;this.finalize=void 0,this.registrations=new Map,this.sweepTimeout=void 0,this.sweep=function(e){void 0===e&&(e=1e4),clearTimeout(t.sweepTimeout),t.sweepTimeout=void 0;var r=Date.now();t.registrations.forEach((function(n,o){r-n.registeredAt>=e&&(t.finalize(n.value),t.registrations.delete(o))})),t.registrations.size>0&&t.scheduleSweep()},this.finalizeAllImmediately=function(){t.sweep(0)},this.finalize=e}var t=e.prototype;return t.register=function(e,t,r){this.registrations.set(r,{value:t,registeredAt:Date.now()}),this.scheduleSweep()},t.unregister=function(e){this.registrations.delete(e)},t.scheduleSweep=function(){void 0===this.sweepTimeout&&(this.sweepTimeout=setTimeout(this.sweep,1e4))},e}())((function(e){var t;null==(t=e.reaction)||t.dispose(),e.reaction=null}));function m(e){e.reaction=new t.Reaction("observer"+e.name,(function(){e.stateVersion=Symbol(),null==e.onStoreChange||e.onStoreChange()}))}function v(e,t){if(void 0===t&&(t="observed"),l())return e();var r=i.useRef(null);if(!r.current){var n={reaction:null,onStoreChange:null,stateVersion:Symbol(),name:t,subscribe:function(e){return b.unregister(n),n.onStoreChange=e,n.reaction||(m(n),n.stateVersion=Symbol()),function(){var e;n.onStoreChange=null,null==(e=n.reaction)||e.dispose(),n.reaction=null}},getSnapshot:function(){return n.stateVersion}};r.current=n}var a,u,c=r.current;if(c.reaction||(m(c),b.register(r,c,c)),i.useDebugValue(c.reaction,s),o.useSyncExternalStore(c.subscribe,c.getSnapshot,c.getSnapshot),c.reaction.track((function(){try{a=e()}catch(e){u=e}})),u)throw u;return a}var y,h="function"==typeof Symbol&&Symbol.for,g=null!=(d=null==(p=Object.getOwnPropertyDescriptor((function(){}),"name"))?void 0:p.configurable)&&d,w=h?Symbol.for("react.forward_ref"):"function"==typeof r.forwardRef&&r.forwardRef((function(e){return null})).$$typeof,S=h?Symbol.for("react.memo"):"function"==typeof r.memo&&r.memo((function(e){return null})).$$typeof,R={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0};function x(e){var t=e.children||e.render;return"function"!=typeof t?null:v(t)}function O(e){var n=r.useState((function(){return t.observable(e,{},{deep:!1})}))[0];return t.runInAction((function(){Object.assign(n,e)})),n}x.displayName="Observer",u(n.unstable_batchedUpdates);var T=null!=(y=b.finalizeAllImmediately)?y:function(){};e.Observer=x,e._observerFinalizationRegistry=b,e.clearTimers=T,e.enableStaticRendering=f,e.isObserverBatched=function(){return!0},e.isUsingStaticRendering=l,e.observer=function(e,t){var n;if(S&&e.$$typeof===S)throw new Error("[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.");if(l())return e;var o=null!=(n=null==t?void 0:t.forwardRef)&&n,i=e,a=e.displayName||e.name;if(w&&e.$$typeof===w&&(o=!0,"function"!=typeof(i=e.render)))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");var u,s,c=function(e,t){return v((function(){return i(e,t)}),a)};return c.displayName=e.displayName,g&&Object.defineProperty(c,"name",{value:e.name,writable:!0,configurable:!0}),e.contextTypes&&(c.contextTypes=e.contextTypes),o&&(c=r.forwardRef(c)),c=r.memo(c),u=e,s=c,Object.keys(u).forEach((function(e){R[e]||Object.defineProperty(s,e,Object.getOwnPropertyDescriptor(u,e))})),c},e.observerBatching=u,e.useAsObservableSource=O,e.useLocalObservable=function(e,n){return r.useState((function(){return t.observable(e(),n,{autoBind:!0})}))[0]},e.useLocalStore=function(e,n){var o=n&&O(n);return r.useState((function(){return t.observable(e(o),void 0,{autoBind:!0})}))[0]},e.useObserver=function(e,t){return void 0===t&&(t="observed"),v(e,t)},e.useStaticRendering=function(e){f(e)},Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=mobxreactlite.umd.production.min.js.map