UNPKG

mobx-react-lite

Version:

Lightweight React bindings for MobX based on function components and Hooks

3 lines (2 loc) 3.75 kB
function e(){return u}function t(e){e.reaction=new i.Reaction(`observer${e.name}`,()=>{e.stateVersion=Symbol(),null==e.onStoreChange||e.onStoreChange()})}function r(r,o="observed"){if(e())return r();const n=s.default.useRef(null);if(!n.current){const e={reaction:null,onStoreChange:null,stateVersion:Symbol(),name:o,subscribe:r=>(a.unregister(e),e.onStoreChange=r,e.reaction||(t(e),e.stateVersion=Symbol()),()=>{var t;e.onStoreChange=null,null==(t=e.reaction)||t.dispose(),e.reaction=null}),getSnapshot:()=>e.stateVersion};n.current=e}const l=n.current;let u,c;if(l.reaction||(t(l),a.register(n,l,l)),s.default.useDebugValue(l.reaction,i.getDependencyTree),s.default.useSyncExternalStore(l.subscribe,l.getSnapshot,l.getSnapshot),l.reaction.track(()=>{try{u=r()}catch(e){c=e}}),c)throw c;return u}function o({children:e,render:t}){e&&t&&console.error("MobX Observer: Do not use children and render in the same time in `Observer`");const o=e||t;return"function"!=typeof o?null:r(o)}Object.defineProperty(exports,"__esModule",{value:!0});var n,i=require("mobx"),l=require("react"),s=l&&"object"==typeof l&&"default"in l?l:{default:l};if(!l.useState||!l.useSyncExternalStore)throw new Error("mobx-react-lite requires React 18 or later");if(!((null==i._getGlobalState||null==(n=i._getGlobalState())?void 0:n.version)>=7))throw new Error("mobx-react-lite requires mobx at least version 7 to be available");const a=new("undefined"!=typeof FinalizationRegistry?FinalizationRegistry:class{constructor(e){this.finalize=void 0,this.registrations=new Map,this.sweepTimeout=void 0,this.sweep=(e=1e4)=>{clearTimeout(this.sweepTimeout),this.sweepTimeout=void 0;const t=Date.now();this.registrations.forEach((r,o)=>{t-r.registeredAt>=e&&(this.finalize(r.value),this.registrations.delete(o))}),this.registrations.size>0&&this.scheduleSweep()},this.finalizeAllImmediately=()=>{this.sweep(0)},this.finalize=e}register(e,t,r){this.registrations.set(r,{value:t,registeredAt:Date.now()}),this.scheduleSweep()}unregister(e){this.registrations.delete(e)}scheduleSweep(){void 0===this.sweepTimeout&&(this.sweepTimeout=setTimeout(this.sweep,1e4))}})(e=>{var t;null==(t=e.reaction)||t.dispose(),e.reaction=null});let u=!1;var c,f;const b="function"==typeof Symbol&&Symbol.for,h=null!=(c=null==(f=Object.getOwnPropertyDescriptor(()=>{},"name"))?void 0:f.configurable)&&c,m=b?Symbol.for("react.forward_ref"):"function"==typeof l.forwardRef&&l.forwardRef(()=>null).$$typeof,p=b?Symbol.for("react.memo"):"function"==typeof l.memo&&l.memo(()=>null).$$typeof,d={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0};var v;o.displayName="Observer";const y=null!=(v=a.finalizeAllImmediately)?v:()=>{};exports.Observer=o,exports._observerFinalizationRegistry=a,exports.clearTimers=y,exports.enableStaticRendering=function(e){u=e},exports.isUsingStaticRendering=e,exports.observer=function(t){if(p&&t.$$typeof===p)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(e())return t;let o=!1,n=t;const i=t.displayName||t.name;if(m&&t.$$typeof===m&&(o=!0,n=t.render,"function"!=typeof n))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");let s=(e,t)=>r(()=>n(e,t),i);var a,u;return s.displayName=t.displayName,h&&Object.defineProperty(s,"name",{value:t.name,writable:!0,configurable:!0}),o&&(s=l.forwardRef(s)),s=l.memo(s),a=t,u=s,Object.keys(a).forEach(e=>{d[e]||Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(a,e))}),s},exports.useLocalObservable=function(e,t){return l.useState(()=>i.observable(e(),t,{autoBind:!0}))[0]}; //# sourceMappingURL=mobxreactlite.cjs.production.min.js.map