UNPKG

mobx-react

Version:

React bindings for MobX. Create fully reactive components.

3 lines (2 loc) 5.19 kB
function e(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function t(e,t,...n){t.locks++;try{let t;return null!=e&&(t=e.apply(this,n)),t}finally{t.locks--,0===t.locks&&t.methods.forEach(e=>{e.apply(this,n)})}}function n(e,n){return function(...r){t.call(this,e,n,...r)}}function r(e,t,n){const r=function(e,t){const n=e[d]=e[d]||{},r=n[t]=n[t]||{};return r.locks=r.locks||0,r.methods=r.methods||[],r}(e,t);r.methods.indexOf(n)<0&&r.methods.push(n);const i=Object.getOwnPropertyDescriptor(e,t);if(i&&i[h])return;const c=o(e,t,i?i.enumerable:void 0,r,e[t]);Object.defineProperty(e,t,c)}function o(e,t,r,i,c){let u=n(c,i);return{[h]:!0,get:function(){return u},set:function(c){if(this===e)u=n(c,i);else{const e=o(this,t,r,i,c);Object.defineProperty(this,t,e)}},configurable:!0,enumerable:r}}function i(e){var t;return null!=(t=e[m])?t:e[m]={reaction:null,mounted:!1,reactionInvalidatedBeforeMount:!1,forceUpdate:null,name:c(e.constructor),state:void 0,props:void 0,context:void 0}}function c(e){return e.displayName||e.name||"<component>"}function u(e){const t=e.bind(this),n=i(this);return function(){let e,r;if(n.reaction||(n.reaction=function(e){return new l.Reaction(`${e.name}.render()`,()=>{if(e.mounted)try{null==e.forceUpdate||e.forceUpdate()}catch(n){var t;null==(t=e.reaction)||t.dispose(),e.reaction=null}else e.reactionInvalidatedBeforeMount=!0})}(n),n.mounted||f._observerFinalizationRegistry.register(this,n,this)),n.reaction.track(()=>{try{r=l._allowStateChanges(!1,t)}catch(t){e=t}}),e)throw e;return r}}function s(t,n){return f.isUsingStaticRendering()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==n||!function(t,n){if(e(t,n))return!0;if("object"!=typeof t||null===t||"object"!=typeof n||null===n)return!1;const r=Object.keys(t),o=Object.keys(n);if(r.length!==o.length)return!1;for(let o=0;o<r.length;o++)if(!Object.hasOwnProperty.call(n,r[o])||!e(t[r[o]],n[r[o]]))return!1;return!0}(this.props,t)}Object.defineProperty(exports,"__esModule",{value:!0});var l=require("mobx"),a=require("react"),f=require("mobx-react-lite"),b=function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}(a);const d=Symbol("patchMixins"),h=Symbol("patchedDefinition"),m=Symbol("ObserverAdministration"),p=Symbol("isMobXReactObserver");if(!a.Component)throw new Error("mobx-react requires React to be available");if(!l.observable)throw new Error("mobx-react requires mobx to be available");Object.defineProperty(exports,"Observer",{enumerable:!0,get:function(){return f.Observer}}),Object.defineProperty(exports,"_observerFinalizationRegistry",{enumerable:!0,get:function(){return f._observerFinalizationRegistry}}),Object.defineProperty(exports,"clearTimers",{enumerable:!0,get:function(){return f.clearTimers}}),Object.defineProperty(exports,"enableStaticRendering",{enumerable:!0,get:function(){return f.enableStaticRendering}}),Object.defineProperty(exports,"isUsingStaticRendering",{enumerable:!0,get:function(){return f.isUsingStaticRendering}}),Object.defineProperty(exports,"useLocalObservable",{enumerable:!0,get:function(){return f.useLocalObservable}}),exports.observer=function(e,t){if(t&&"class"!==t.kind)throw new Error("The @observer decorator can be used on classes only");return Object.prototype.isPrototypeOf.call(b.Component,e)||Object.prototype.isPrototypeOf.call(b.PureComponent,e)?function(e){const{prototype:t}=e;if(e[p]){const t=c(e);throw new Error(`The provided component class (${t}) has already been declared as an observer component.`)}if(e[p]=!0,t.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==a.PureComponent)if(t.shouldComponentUpdate){if(t.shouldComponentUpdate!==s)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else t.shouldComponentUpdate=s;const n=t.render;if("function"!=typeof n){const t=c(e);throw new Error(`[mobx-react] class component (${t}) is missing \`render\` method.\n\`observer\` requires \`render\` being a function defined on prototype.\n\`render = () => {}\` or \`render = function() {}\` is not supported.`)}t.render=function(){return Object.defineProperty(this,"render",{configurable:!1,writable:!1,value:f.isUsingStaticRendering()?n:u.call(this,n)}),this.render()};const o=t.componentDidMount;return t.componentDidMount=function(){const e=i(this);return e.mounted=!0,f._observerFinalizationRegistry.unregister(this),e.forceUpdate=()=>this.forceUpdate(),e.reaction&&!e.reactionInvalidatedBeforeMount||e.forceUpdate(),null==o?void 0:o.apply(this,arguments)},r(t,"componentWillUnmount",function(){var e;if(f.isUsingStaticRendering())return;const t=i(this);null==(e=t.reaction)||e.dispose(),t.reaction=null,t.forceUpdate=null,t.mounted=!1,t.reactionInvalidatedBeforeMount=!1}),e}(e):f.observer(e)}; //# sourceMappingURL=mobxreact.cjs.production.min.js.map