effector-react
Advanced tools
Comparing version 20.3.0 to 20.4.0
@@ -1,2 +0,2 @@ | ||
'use strict';function t(t){if(!i.is.store(t))throw Error('expect useStore argument to be a store');var e=a.useReducer(f,void 0,t.getState)[1],n=a.useMemo(function(){var n=t.updates.watch(function(t){n.active&&e(t)});return n.active=1,n},[t]);return s(function(){return function(){n.active=0,n()}},[n]),t.getState()}function e(e){var n=e.store,r=e.keys,o=e.fn;if(!i.is.store(n))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof o)throw Error('useStoreMap expects a function');var u=a.useMemo(function(){return i.createStore(o(n.getState(),r)).on(n,function(t,e){return o(e,r)})},r),c=t(u);return s(function(){return function(){u.off(n),i.clearNode(u,{deep:1})}},r),c}function n(e,n){function r(e){var r=a.useRef(e),o=a.useMemo(function(){return m(e)},[]),u=t(o);s(function(){return l({props:r.current,state:o.getState()}),function(){d({props:r.current,state:o.getState()})}},[]);var c=n(e,u);return r.current=e,c}var o,u,c,f;if(i.is.store(e))f=e;else if('function'==typeof e)c=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');f=i.createStoreObject(e)}var p=null!==(o=null===(u=f)||void 0===u?void 0:u.shortName)&&void 0!==o?o:'Unknown',l=i.createEvent(p+".View mounted"),d=i.createEvent(p+".View unmounted"),m='function'==typeof e?c:function(){return f};return r.displayName=p+".View",r.mounted=l,r.unmounted=d,r}function r(t){return n(t,function(t,e){return(0,t.children)(e)})}function o(){return(o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t}).apply(this,arguments)}function u(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function c(t,e){var n=r(t),u=function(t){return a.createElement(n,null,function(n){return a.createElement(e,o({},t,n))})};return u.displayName="Connect("+(e.displayName||e.name||'Unknown')+")",u}Object.defineProperty(exports,'__esModule',{value:1});var a=require('react'),i=require('effector/compat'),s='undefined'!=typeof window?a.useLayoutEffect:a.useEffect,f=function(t,e){return e},p=i.createDomain('Gate').store;exports.connect=function(t){return function(e){return c(e,t)}},exports.createComponent=n,exports.createContextComponent=function(t,e,n){var o,c,i=r(t);return c=o=function(t){function e(){for(var e,r=arguments.length,o=new Array(r),u=0;u<r;u++)o[u]=arguments[u];return(e=t.call.apply(t,[this].concat(o))||this).renderProp=function(t){return n(e.props,t,e.context)},e}return u(e,t),e.prototype.render=function(){return a.createElement(i,null,this.renderProp)},e}(a.Component),o.contextType=e,c},exports.createGate=function t(e,n){void 0===e&&(e='gate'),void 0===n&&(n={});var r=p(Boolean(0)),o=p(n),c=i.createApi(o,{set:function(t,e){return e}}).set,s=i.createApi(r,{open:function(){return m.predicate()&&Boolean(1)},close:function(){return Boolean(0)},destructor:function(){return Boolean(0)}}),f=s.open,l=s.close,d=s.destructor,m=function(n){function r(){return n.apply(this,arguments)||this}u(r,n),r.childGate=function(n){void 0===n&&(n='Subgate');var o=t(e+"/"+n);o.predicate=function(){return r.status.getState()};var u=0,c=0;return o.open.watch(function(){c||(u=1)}),o.close.watch(function(){c||(u=0)}),r.status.watch(function(t){c=1,u&&t&&!o.status.getState()&&o.open(),c=0}),r.close.watch(function(){c=1,o.close(),c=0}),r.destructor.watch(function(){return o.destructor()}),o};var o=r.prototype;return o.componentDidMount=function(){r.open()},o.componentWillUnmount=function(){r.close()},o.render=function(){return r.set(this.props),null},r}(a.PureComponent);m.predicate=function(){return Boolean(1)},m.displayName="Gate:"+e,m.isOpen=Boolean(0),m.current=o.getState(),m.open=f,m.close=l,m.status=r,m.state=o,m.set=c,m.destructor=d,m.isTerminated=Boolean(0);var v=r.watch(function(t){return m.isOpen=t}),h=o.watch(function(t){return m.current=t});r.map(function(t){t||(m.current=n)}),o.reset(l);var y=d.watch(function(){m.isTerminated=Boolean(1)}),w=d.watch(function(){w(),v(),h(),y(),m.status.off(m.open),m.status.off(m.close),m.status.off(m.destructor),m.state.off(m.set)});return m},exports.createReactState=c,exports.createStoreConsumer=r,exports.useGate=function(t,e){void 0===e&&(e={}),s(function(){return t.open(),function(){return t.close()}},[t]),t.set(e)},exports.useList=function(t,n){if(!i.is.store(t))throw Error('expect useList first argument to be a store');if('function'!=typeof n)throw Error('expect useList second argument to be a function');var r=a.useMemo(function(){var r=function(r){var o=r.index,u=e({store:t,keys:[o],fn:function(t,e){return t[e[0]]}});return n(u,o)};return r.displayName=(t.shortName||'Unknown')+".Item",a.memo(r)},[t]),o=e({store:t,keys:[t],fn:function(t){return t.length}});return Array.from({length:o},function(t,e){return a.createElement(r,{index:e,key:e})})},exports.useStore=t,exports.useStoreMap=e; | ||
'use strict';function t(t){if(!s.is.store(t))throw Error('expect useStore argument to be a store');var e=a.useReducer(f,void 0,t.getState)[1],r=a.useMemo(function(){var r=t.updates.watch(function(t){r.active&&e(t)});return r.active=1,r},[t]);return i(function(){return function(){r.active=0,r()}},[r]),t.getState()}function e(e){var r=e.store,n=e.keys,o=e.fn;if(!s.is.store(r))throw Error('useStoreMap expects a store');if(!Array.isArray(n))throw Error('useStoreMap expects an array as keys');if('function'!=typeof o)throw Error('useStoreMap expects a function');var u=a.useMemo(function(){return s.createStore(o(r.getState(),n)).on(r,function(t,e){return o(e,n)})},n),c=t(u);return i(function(){return function(){u.off(r),s.clearNode(u,{deep:1})}},n),c}function r(e,r){function n(e){var n=a.useRef(e),o=a.useMemo(function(){return y(e)},[]),u=t(o);i(function(){return l({props:n.current,state:o.getState()}),function(){d({props:n.current,state:o.getState()})}},[]);var c=r(e,u);return n.current=e,c}var o,u,c,f;if(s.is.store(e))f=e;else if('function'==typeof e)c=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');f=s.createStoreObject(e)}var p=null!==(o=null===(u=f)||void 0===u?void 0:u.shortName)&&void 0!==o?o:'Unknown',l=s.createEvent(p+".View mounted"),d=s.createEvent(p+".View unmounted"),y='function'==typeof e?c:function(){return f};return n.displayName=p+".View",n.mounted=l,n.unmounted=d,n}function n(t){return r(t,function(t,e){return(0,t.children)(e)})}function o(){return(o=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function u(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t.__proto__=e}function c(t,e){var r=n(t),u=function(t){return a.createElement(r,null,function(r){return a.createElement(e,o({},t,r))})};return u.displayName="Connect("+(e.displayName||e.name||'Unknown')+")",u}Object.defineProperty(exports,'__esModule',{value:1});var a=require('react'),s=require('effector/compat'),i='undefined'!=typeof window?a.useLayoutEffect:a.useEffect,f=function(t,e){return e},p=s.createDomain('Gate').store;exports.connect=function(t){return function(e){return c(e,t)}},exports.createComponent=r,exports.createContextComponent=function(t,e,r){var o,c,s=n(t);return c=o=function(t){function e(){for(var e,n=arguments.length,o=new Array(n),u=0;u<n;u++)o[u]=arguments[u];return(e=t.call.apply(t,[this].concat(o))||this).renderProp=function(t){return r(e.props,t,e.context)},e}return u(e,t),e.prototype.render=function(){return a.createElement(s,null,this.renderProp)},e}(a.Component),o.contextType=e,c},exports.createGate=function t(e,r){void 0===e&&(e='gate'),void 0===r&&(r={});var n=p(Boolean(0)),o=p(r),c=s.createApi(o,{set:function(t,e){return e}}).set,i=s.createApi(n,{open:function(){return y.predicate()&&Boolean(1)},close:function(){return Boolean(0)},destructor:function(){return Boolean(0)}}),f=i.open,l=i.close,d=i.destructor,y=function(r){function n(){return r.apply(this,arguments)||this}u(n,r),n.childGate=function(r){void 0===r&&(r='Subgate');var o=t(e+"/"+r);o.predicate=function(){return n.status.getState()};var u=0,c=0;return o.open.watch(function(){c||(u=1)}),o.close.watch(function(){c||(u=0)}),n.status.watch(function(t){c=1,u&&t&&!o.status.getState()&&o.open(),c=0}),n.close.watch(function(){c=1,o.close(),c=0}),n.destructor.watch(function(){return o.destructor()}),o};var o=n.prototype;return o.componentDidMount=function(){n.open()},o.componentWillUnmount=function(){n.close()},o.render=function(){return n.set(this.props),null},n}(a.PureComponent);y.predicate=function(){return Boolean(1)},y.displayName="Gate:"+e,y.isOpen=Boolean(0),y.current=o.getState(),y.open=f,y.close=l,y.status=n,y.state=o,y.set=c,y.destructor=d,y.isTerminated=Boolean(0);var m=n.watch(function(t){return y.isOpen=t}),v=o.watch(function(t){return y.current=t});n.map(function(t){t||(y.current=r)}),o.reset(l);var h=d.watch(function(){y.isTerminated=Boolean(1)}),w=d.watch(function(){w(),m(),v(),h(),y.status.off(y.open),y.status.off(y.close),y.status.off(y.destructor),y.state.off(y.set)});return y},exports.createReactState=c,exports.createStoreConsumer=n,exports.useGate=function(t,e){void 0===e&&(e={}),i(function(){return t.open(),function(){return t.close()}},[t]),t.set(e)},exports.useList=function(t,r){var n,o=[];if('object'==typeof r&&null!==r?(r.keys&&(o=r.keys),n=r.fn):n=r,!s.is.store(t))throw Error('expect useList first argument to be a store');if('function'!=typeof n)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(o))throw Error("expect useList's keys to be an array");var u=a.useMemo(function(){var r=function(r){var n=r.index,o=e({store:t,keys:[n].concat(r.keys),fn:function(t,e){return t[e[0]]}});return i.current(o,n)};return r.displayName=(t.shortName||'Unknown')+".Item",a.memo(r)},[t]),c=e({store:t,keys:[t],fn:function(t){return t.length}}),i=a.useRef(n);i.current=n;var f=a.useMemo(function(){return o},o);return Array.from({length:c},function(t,e){return a.createElement(u,{index:e,key:e,keys:f})})},exports.useStore=t,exports.useStoreMap=e; | ||
//# sourceMappingURL=compat.js.map |
@@ -1,2 +0,2 @@ | ||
function e(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const t=s.useReducer(c,void 0,e.getState)[1],o=s.useMemo(()=>{const o=e.updates.watch(e=>{o.active&&t(e)});return o.active=1,o},[e]);return a(()=>()=>{o.active=0,o()},[o]),e.getState()}function t({store:t,keys:o,fn:r}){if(!effector.is.store(t))throw Error('useStoreMap expects a store');if(!Array.isArray(o))throw Error('useStoreMap expects an array as keys');if('function'!=typeof r)throw Error('useStoreMap expects a function');const n=s.useMemo(()=>effector.createStore(r(t.getState(),o)).on(t,(e,t)=>r(t,o)),o),c=e(n);return a(()=>()=>{n.off(t),effector.clearNode(n,{deep:1})},o),c}function o(t,o){function r(t){const r=s.useRef(t),n=s.useMemo(()=>d(t),[]),c=e(n);a(()=>(l({props:r.current,state:n.getState()}),()=>{f({props:r.current,state:n.getState()})}),[]);const u=o(t,c);return r.current=t,u}var n,c;let u,i;if(effector.is.store(t))i=t;else if('function'==typeof t)u=t;else{if('object'!=typeof t||null===t)throw Error('shape should be a store or object with stores');i=effector.createStoreObject(t)}const p=null!==(n=null===(c=i)||void 0===c?void 0:c.shortName)&&void 0!==n?n:'Unknown',l=effector.createEvent(p+".View mounted"),f=effector.createEvent(p+".View unmounted"),d='function'==typeof t?u:()=>i;return r.displayName=p+".View",r.mounted=l,r.unmounted=f,r}function r(e){return o(e,({children:e},t)=>e(t))}function n(e,t){const o=r(e),n=e=>s.createElement(o,null,o=>s.createElement(t,Object.assign({},e,o)));return n.displayName="Connect("+(t.displayName||t.name||'Unknown')+")",n}Object.defineProperty(exports,'__esModule',{value:1});var s=require('react'),effector=require('effector');const a='undefined'!=typeof window?s.useLayoutEffect:s.useEffect,c=(e,t)=>t,{store:u}=effector.createDomain('Gate');exports.connect=e=>t=>n(t,e),exports.createComponent=o,exports.createContextComponent=function(e,t,o){var n,a;const c=r(e);return a=n=class extends s.Component{constructor(...e){super(...e),this.renderProp=e=>o(this.props,e,this.context)}render(){return s.createElement(c,null,this.renderProp)}},n.contextType=t,a},exports.createGate=function e(t="gate",o={}){const r=u(Boolean(0)),n=u(o),{set:a}=effector.createApi(n,{set:(e,t)=>t}),{open:c,close:i,destructor:p}=effector.createApi(r,{open:()=>l.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class l extends s.PureComponent{static childGate(o="Subgate"){const r=e(t+"/"+o);r.predicate=()=>l.status.getState();let n=0,s=0;return r.open.watch(()=>{s||(n=1)}),r.close.watch(()=>{s||(n=0)}),l.status.watch(e=>{s=1,n&&e&&!r.status.getState()&&r.open(),s=0}),l.close.watch(()=>{s=1,r.close(),s=0}),l.destructor.watch(()=>r.destructor()),r}componentDidMount(){l.open()}componentWillUnmount(){l.close()}render(){return l.set(this.props),null}}l.predicate=()=>Boolean(1),l.displayName="Gate:"+t,l.isOpen=Boolean(0),l.current=n.getState(),l.open=c,l.close=i,l.status=r,l.state=n,l.set=a,l.destructor=p,l.isTerminated=Boolean(0);const f=r.watch(e=>l.isOpen=e),d=n.watch(e=>l.current=e);r.map(e=>{e||(l.current=o)}),n.reset(i);const m=p.watch(()=>{l.isTerminated=Boolean(1)}),h=p.watch(()=>{h(),f(),d(),m(),l.status.off(l.open),l.status.off(l.close),l.status.off(l.destructor),l.state.off(l.set)});return l},exports.createReactState=n,exports.createStoreConsumer=r,exports.useGate=(e,t={})=>{a(()=>(e.open(),()=>e.close()),[e]),e.set(t)},exports.useList=(e,o)=>{if(!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof o)throw Error('expect useList second argument to be a function');const r=s.useMemo(()=>{const r=({index:r})=>{const n=t({store:e,keys:[r],fn:(e,t)=>e[t[0]]});return o(n,r)};return r.displayName=(e.shortName||'Unknown')+".Item",s.memo(r)},[e]),n=t({store:e,keys:[e],fn:e=>e.length});return Array.from({length:n},(e,t)=>s.createElement(r,{index:t,key:t}))},exports.useStore=e,exports.useStoreMap=t; | ||
function e(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const t=s.useReducer(c,void 0,e.getState)[1],r=s.useMemo(()=>{const r=e.updates.watch(e=>{r.active&&t(e)});return r.active=1,r},[e]);return a(()=>()=>{r.active=0,r()},[r]),e.getState()}function t({store:t,keys:r,fn:o}){if(!effector.is.store(t))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof o)throw Error('useStoreMap expects a function');const n=s.useMemo(()=>effector.createStore(o(t.getState(),r)).on(t,(e,t)=>o(t,r)),r),c=e(n);return a(()=>()=>{n.off(t),effector.clearNode(n,{deep:1})},r),c}function r(t,r){function o(t){const o=s.useRef(t),n=s.useMemo(()=>d(t),[]),c=e(n);a(()=>(f({props:o.current,state:n.getState()}),()=>{l({props:o.current,state:n.getState()})}),[]);const u=r(t,c);return o.current=t,u}var n,c;let u,i;if(effector.is.store(t))i=t;else if('function'==typeof t)u=t;else{if('object'!=typeof t||null===t)throw Error('shape should be a store or object with stores');i=effector.createStoreObject(t)}const p=null!==(n=null===(c=i)||void 0===c?void 0:c.shortName)&&void 0!==n?n:'Unknown',f=effector.createEvent(p+".View mounted"),l=effector.createEvent(p+".View unmounted"),d='function'==typeof t?u:()=>i;return o.displayName=p+".View",o.mounted=f,o.unmounted=l,o}function o(e){return r(e,({children:e},t)=>e(t))}function n(e,t){const r=o(e),n=e=>s.createElement(r,null,r=>s.createElement(t,Object.assign({},e,r)));return n.displayName="Connect("+(t.displayName||t.name||'Unknown')+")",n}Object.defineProperty(exports,'__esModule',{value:1});var s=require('react'),effector=require('effector');const a='undefined'!=typeof window?s.useLayoutEffect:s.useEffect,c=(e,t)=>t,{store:u}=effector.createDomain('Gate');exports.connect=e=>t=>n(t,e),exports.createComponent=r,exports.createContextComponent=function(e,t,r){var n,a;const c=o(e);return a=n=class extends s.Component{constructor(...e){super(...e),this.renderProp=e=>r(this.props,e,this.context)}render(){return s.createElement(c,null,this.renderProp)}},n.contextType=t,a},exports.createGate=function e(t="gate",r={}){const o=u(Boolean(0)),n=u(r),{set:a}=effector.createApi(n,{set:(e,t)=>t}),{open:c,close:i,destructor:p}=effector.createApi(o,{open:()=>f.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class f extends s.PureComponent{static childGate(r="Subgate"){const o=e(t+"/"+r);o.predicate=()=>f.status.getState();let n=0,s=0;return o.open.watch(()=>{s||(n=1)}),o.close.watch(()=>{s||(n=0)}),f.status.watch(e=>{s=1,n&&e&&!o.status.getState()&&o.open(),s=0}),f.close.watch(()=>{s=1,o.close(),s=0}),f.destructor.watch(()=>o.destructor()),o}componentDidMount(){f.open()}componentWillUnmount(){f.close()}render(){return f.set(this.props),null}}f.predicate=()=>Boolean(1),f.displayName="Gate:"+t,f.isOpen=Boolean(0),f.current=n.getState(),f.open=c,f.close=i,f.status=o,f.state=n,f.set=a,f.destructor=p,f.isTerminated=Boolean(0);const l=o.watch(e=>f.isOpen=e),d=n.watch(e=>f.current=e);o.map(e=>{e||(f.current=r)}),n.reset(i);const m=p.watch(()=>{f.isTerminated=Boolean(1)}),h=p.watch(()=>{h(),l(),d(),m(),f.status.off(f.open),f.status.off(f.close),f.status.off(f.destructor),f.state.off(f.set)});return f},exports.createReactState=n,exports.createStoreConsumer=o,exports.useGate=(e,t={})=>{a(()=>(e.open(),()=>e.close()),[e]),e.set(t)},exports.useList=(e,r)=>{let o,n=[];if('object'==typeof r&&null!==r?(r.keys&&(n=r.keys),o=r.fn):o=r,!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof o)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(n))throw Error("expect useList's keys to be an array");const a=s.useMemo(()=>{const r=({index:r,keys:o})=>{const n=t({store:e,keys:[r,...o],fn:(e,t)=>e[t[0]]});return u.current(n,r)};return r.displayName=(e.shortName||'Unknown')+".Item",s.memo(r)},[e]),c=t({store:e,keys:[e],fn:e=>e.length}),u=s.useRef(o);u.current=o;const i=s.useMemo(()=>n,n);return Array.from({length:c},(e,t)=>s.createElement(a,{index:t,key:t,keys:i}))},exports.useStore=e,exports.useStoreMap=t; | ||
//# sourceMappingURL=effector-react.cjs.js.map |
@@ -1,2 +0,2 @@ | ||
function t(t){if(!S.store(t))throw Error('expect useStore argument to be a store');const e=l(M,void 0,t.getState)[1],o=d(()=>{const o=t.updates.watch(t=>{o.active&&e(t)});return o.active=1,o},[t]);return N(()=>()=>{o.active=0,o()},[o]),t.getState()}function e({store:e,keys:o,fn:r}){if(!S.store(e))throw Error('useStoreMap expects a store');if(!Array.isArray(o))throw Error('useStoreMap expects an array as keys');if('function'!=typeof r)throw Error('useStoreMap expects a function');const n=d(()=>x(r(e.getState(),o)).on(e,(t,e)=>r(e,o)),o),s=t(n);return N(()=>()=>{n.off(e),v(n,{deep:1})},o),s}function o(e,o){function r(e){const r=h(e),n=d(()=>f(e),[]),s=t(n);N(()=>(i({props:r.current,state:n.getState()}),()=>{p({props:r.current,state:n.getState()})}),[]);const c=o(e,s);return r.current=e,c}var n,s;let c,a;if(S.store(e))a=e;else if('function'==typeof e)c=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');a=b(e)}const u=null!==(n=null===(s=a)||void 0===s?void 0:s.shortName)&&void 0!==n?n:'Unknown',i=k(u+".View mounted"),p=k(u+".View unmounted"),f='function'==typeof e?c:()=>a;return r.displayName=u+".View",r.mounted=i,r.unmounted=p,r}function r(t){return o(t,({children:t},e)=>t(e))}function n(t,e,o){var n,s;const c=r(t);return s=n=class extends m{constructor(...t){super(...t),this.renderProp=t=>o(this.props,t,this.context)}render(){return w(c,null,this.renderProp)}},n.contextType=e,s}function s(t,o){if(!S.store(t))throw Error('expect useList first argument to be a store');if('function'!=typeof o)throw Error('expect useList second argument to be a function');const r=d(()=>{const r=({index:r})=>{const n=e({store:t,keys:[r],fn:(t,e)=>t[e[0]]});return o(n,r)};return r.displayName=(t.shortName||'Unknown')+".Item",y(r)},[t]),n=e({store:t,keys:[t],fn:t=>t.length});return Array.from({length:n},(t,e)=>w(r,{index:e,key:e}))}function c(t,e){const o=r(t),n=t=>w(o,null,o=>w(e,Object.assign({},t,o)));return n.displayName="Connect("+(e.displayName||e.name||'Unknown')+")",n}function a(t){return e=>c(e,t)}function u(t,e={}){N(()=>(t.open(),()=>t.close()),[t]),t.set(e)}function i(t="gate",e={}){const o=U(Boolean(0)),r=U(e),{set:n}=E(r,{set:(t,e)=>e}),{open:s,close:c,destructor:a}=E(o,{open:()=>u.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class u extends g{static childGate(e="Subgate"){const o=i(t+"/"+e);o.predicate=()=>u.status.getState();let r=0,n=0;return o.open.watch(()=>{n||(r=1)}),o.close.watch(()=>{n||(r=0)}),u.status.watch(t=>{n=1,r&&t&&!o.status.getState()&&o.open(),n=0}),u.close.watch(()=>{n=1,o.close(),n=0}),u.destructor.watch(()=>o.destructor()),o}componentDidMount(){u.open()}componentWillUnmount(){u.close()}render(){return u.set(this.props),null}}u.predicate=()=>Boolean(1),u.displayName="Gate:"+t,u.isOpen=Boolean(0),u.current=r.getState(),u.open=s,u.close=c,u.status=o,u.state=r,u.set=n,u.destructor=a,u.isTerminated=Boolean(0);const p=o.watch(t=>u.isOpen=t),f=r.watch(t=>u.current=t);o.map(t=>{t||(u.current=e)}),r.reset(c);const l=a.watch(()=>{u.isTerminated=Boolean(1)}),d=a.watch(()=>{d(),p(),f(),l(),u.status.off(u.open),u.status.off(u.close),u.status.off(u.destructor),u.state.off(u.set)});return u}import{useLayoutEffect as p,useEffect as f,useReducer as l,useMemo as d,useRef as h,Component as m,createElement as w,memo as y,PureComponent as g}from'react';import{is as S,createStore as x,clearNode as v,createStoreObject as b,createEvent as k,createDomain as B,createApi as E}from'effector';const N='undefined'!=typeof window?p:f,M=(t,e)=>e,{store:U}=B('Gate');export{a as connect,o as createComponent,n as createContextComponent,i as createGate,c as createReactState,r as createStoreConsumer,u as useGate,s as useList,t as useStore,e as useStoreMap}; | ||
function t(t){if(!x.store(t))throw Error('expect useStore argument to be a store');const e=l(A,void 0,t.getState)[1],o=d(()=>{const o=t.updates.watch(t=>{o.active&&e(t)});return o.active=1,o},[t]);return N(()=>()=>{o.active=0,o()},[o]),t.getState()}function e({store:e,keys:o,fn:r}){if(!x.store(e))throw Error('useStoreMap expects a store');if(!Array.isArray(o))throw Error('useStoreMap expects an array as keys');if('function'!=typeof r)throw Error('useStoreMap expects a function');const n=d(()=>S(r(e.getState(),o)).on(e,(t,e)=>r(e,o)),o),s=t(n);return N(()=>()=>{n.off(e),k(n,{deep:1})},o),s}function o(e,o){function r(e){const r=h(e),n=d(()=>f(e),[]),s=t(n);N(()=>(i({props:r.current,state:n.getState()}),()=>{p({props:r.current,state:n.getState()})}),[]);const c=o(e,s);return r.current=e,c}var n,s;let c,a;if(x.store(e))a=e;else if('function'==typeof e)c=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');a=b(e)}const u=null!==(n=null===(s=a)||void 0===s?void 0:s.shortName)&&void 0!==n?n:'Unknown',i=v(u+".View mounted"),p=v(u+".View unmounted"),f='function'==typeof e?c:()=>a;return r.displayName=u+".View",r.mounted=i,r.unmounted=p,r}function r(t){return o(t,({children:t},e)=>t(e))}function n(t,e,o){var n,s;const c=r(t);return s=n=class extends y{constructor(...t){super(...t),this.renderProp=t=>o(this.props,t,this.context)}render(){return m(c,null,this.renderProp)}},n.contextType=e,s}function s(t,o){let r,n=[];if('object'==typeof o&&null!==o?(o.keys&&(n=o.keys),r=o.fn):r=o,!x.store(t))throw Error('expect useList first argument to be a store');if('function'!=typeof r)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(n))throw Error("expect useList's keys to be an array");const s=d(()=>{const o=({index:o,keys:r})=>{const n=e({store:t,keys:[o,...r],fn:(t,e)=>t[e[0]]});return a.current(n,o)};return o.displayName=(t.shortName||'Unknown')+".Item",w(o)},[t]),c=e({store:t,keys:[t],fn:t=>t.length}),a=h(r);a.current=r;const u=d(()=>n,n);return Array.from({length:c},(t,e)=>m(s,{index:e,key:e,keys:u}))}function c(t,e){const o=r(t),n=t=>m(o,null,o=>m(e,Object.assign({},t,o)));return n.displayName="Connect("+(e.displayName||e.name||'Unknown')+")",n}function a(t){return e=>c(e,t)}function u(t,e={}){N(()=>(t.open(),()=>t.close()),[t]),t.set(e)}function i(t="gate",e={}){const o=j(Boolean(0)),r=j(e),{set:n}=E(r,{set:(t,e)=>e}),{open:s,close:c,destructor:a}=E(o,{open:()=>u.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class u extends g{static childGate(e="Subgate"){const o=i(t+"/"+e);o.predicate=()=>u.status.getState();let r=0,n=0;return o.open.watch(()=>{n||(r=1)}),o.close.watch(()=>{n||(r=0)}),u.status.watch(t=>{n=1,r&&t&&!o.status.getState()&&o.open(),n=0}),u.close.watch(()=>{n=1,o.close(),n=0}),u.destructor.watch(()=>o.destructor()),o}componentDidMount(){u.open()}componentWillUnmount(){u.close()}render(){return u.set(this.props),null}}u.predicate=()=>Boolean(1),u.displayName="Gate:"+t,u.isOpen=Boolean(0),u.current=r.getState(),u.open=s,u.close=c,u.status=o,u.state=r,u.set=n,u.destructor=a,u.isTerminated=Boolean(0);const p=o.watch(t=>u.isOpen=t),f=r.watch(t=>u.current=t);o.map(t=>{t||(u.current=e)}),r.reset(c);const l=a.watch(()=>{u.isTerminated=Boolean(1)}),d=a.watch(()=>{d(),p(),f(),l(),u.status.off(u.open),u.status.off(u.close),u.status.off(u.destructor),u.state.off(u.set)});return u}import{useLayoutEffect as p,useEffect as f,useReducer as l,useMemo as d,useRef as h,Component as y,createElement as m,memo as w,PureComponent as g}from'react';import{is as x,createStore as S,clearNode as k,createStoreObject as b,createEvent as v,createDomain as B,createApi as E}from'effector';const N='undefined'!=typeof window?p:f,A=(t,e)=>e,{store:j}=B('Gate');export{a as connect,o as createComponent,n as createContextComponent,i as createGate,c as createReactState,r as createStoreConsumer,u as useGate,s as useList,t as useStore,e as useStoreMap}; | ||
//# sourceMappingURL=effector-react.es.js.map |
@@ -1,2 +0,2 @@ | ||
return e=this,t=function(e,t,effector){function o(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const o=t.useReducer(u,void 0,e.getState)[1],r=t.useMemo(()=>{const t=e.updates.watch(e=>{t.active&&o(e)});return t.active=1,t},[e]);return a(()=>()=>{r.active=0,r()},[r]),e.getState()}function r({store:e,keys:r,fn:n}){if(!effector.is.store(e))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof n)throw Error('useStoreMap expects a function');const s=t.useMemo(()=>effector.createStore(n(e.getState(),r)).on(e,(e,t)=>n(t,r)),r),c=o(s);return a(()=>()=>{s.off(e),effector.clearNode(s,{deep:1})},r),c}function n(e,r){function n(e){const n=t.useRef(e),s=t.useMemo(()=>d(e),[]),c=o(s);a(()=>(p({props:n.current,state:s.getState()}),()=>{l({props:n.current,state:s.getState()})}),[]);const u=r(e,c);return n.current=e,u}var s,c;let u,i;if(effector.is.store(e))i=e;else if('function'==typeof e)u=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');i=effector.createStoreObject(e)}const f=null!==(s=null===(c=i)||void 0===c?void 0:c.shortName)&&void 0!==s?s:'Unknown',p=effector.createEvent(f+".View mounted"),l=effector.createEvent(f+".View unmounted"),d='function'==typeof e?u:()=>i;return n.displayName=f+".View",n.mounted=p,n.unmounted=l,n}function s(e){return n(e,({children:e},t)=>e(t))}function c(e,o){const r=s(e),n=e=>t.createElement(r,null,r=>t.createElement(o,Object.assign({},e,r)));return n.displayName="Connect("+(o.displayName||o.name||'Unknown')+")",n}const a='undefined'!=typeof window?t.useLayoutEffect:t.useEffect,u=(e,t)=>t,{store:i}=effector.createDomain('Gate');e.connect=e=>t=>c(t,e),e.createComponent=n,e.createContextComponent=function(e,o,r){var n,c;const a=s(e);return c=n=class extends t.Component{constructor(...e){super(...e),this.renderProp=e=>r(this.props,e,this.context)}render(){return t.createElement(a,null,this.renderProp)}},n.contextType=o,c},e.createGate=function e(o="gate",r={}){const n=i(Boolean(0)),s=i(r),{set:c}=effector.createApi(s,{set:(e,t)=>t}),{open:a,close:u,destructor:f}=effector.createApi(n,{open:()=>p.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class p extends t.PureComponent{static childGate(t="Subgate"){const r=e(o+"/"+t);r.predicate=()=>p.status.getState();let n=0,s=0;return r.open.watch(()=>{s||(n=1)}),r.close.watch(()=>{s||(n=0)}),p.status.watch(e=>{s=1,n&&e&&!r.status.getState()&&r.open(),s=0}),p.close.watch(()=>{s=1,r.close(),s=0}),p.destructor.watch(()=>r.destructor()),r}componentDidMount(){p.open()}componentWillUnmount(){p.close()}render(){return p.set(this.props),null}}p.predicate=()=>Boolean(1),p.displayName="Gate:"+o,p.isOpen=Boolean(0),p.current=s.getState(),p.open=a,p.close=u,p.status=n,p.state=s,p.set=c,p.destructor=f,p.isTerminated=Boolean(0);const l=n.watch(e=>p.isOpen=e),d=s.watch(e=>p.current=e);n.map(e=>{e||(p.current=r)}),s.reset(u);const m=f.watch(()=>{p.isTerminated=Boolean(1)}),h=f.watch(()=>{h(),l(),d(),m(),p.status.off(p.open),p.status.off(p.close),p.status.off(p.destructor),p.state.off(p.set)});return p},e.createReactState=c,e.createStoreConsumer=s,e.useGate=(e,t={})=>{a(()=>(e.open(),()=>e.close()),[e]),e.set(t)},e.useList=(e,o)=>{if(!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof o)throw Error('expect useList second argument to be a function');const n=t.useMemo(()=>{const n=({index:t})=>{const n=r({store:e,keys:[t],fn:(e,t)=>e[t[0]]});return o(n,t)};return n.displayName=(e.shortName||'Unknown')+".Item",t.memo(n)},[e]),s=r({store:e,keys:[e],fn:e=>e.length});return Array.from({length:s},(e,o)=>t.createElement(n,{index:o,key:o}))},e.useStore=o,e.useStoreMap=r,Object.defineProperty(e,'__esModule',{value:1})},void('object'==typeof exports&&'undefined'!=typeof module?t(exports,require('react'),require('effector')):'function'==typeof define&&define.amd?define(['exports','react','effector'],t):t((e=e||self).effectorReact={},e.React,e.effector));var e,t; | ||
return e=this,t=function(e,t,effector){function o(e){if(!effector.is.store(e))throw Error('expect useStore argument to be a store');const o=t.useReducer(u,void 0,e.getState)[1],r=t.useMemo(()=>{const t=e.updates.watch(e=>{t.active&&o(e)});return t.active=1,t},[e]);return a(()=>()=>{r.active=0,r()},[r]),e.getState()}function r({store:e,keys:r,fn:n}){if(!effector.is.store(e))throw Error('useStoreMap expects a store');if(!Array.isArray(r))throw Error('useStoreMap expects an array as keys');if('function'!=typeof n)throw Error('useStoreMap expects a function');const s=t.useMemo(()=>effector.createStore(n(e.getState(),r)).on(e,(e,t)=>n(t,r)),r),c=o(s);return a(()=>()=>{s.off(e),effector.clearNode(s,{deep:1})},r),c}function n(e,r){function n(e){const n=t.useRef(e),s=t.useMemo(()=>d(e),[]),c=o(s);a(()=>(p({props:n.current,state:s.getState()}),()=>{l({props:n.current,state:s.getState()})}),[]);const u=r(e,c);return n.current=e,u}var s,c;let u,i;if(effector.is.store(e))i=e;else if('function'==typeof e)u=e;else{if('object'!=typeof e||null===e)throw Error('shape should be a store or object with stores');i=effector.createStoreObject(e)}const f=null!==(s=null===(c=i)||void 0===c?void 0:c.shortName)&&void 0!==s?s:'Unknown',p=effector.createEvent(f+".View mounted"),l=effector.createEvent(f+".View unmounted"),d='function'==typeof e?u:()=>i;return n.displayName=f+".View",n.mounted=p,n.unmounted=l,n}function s(e){return n(e,({children:e},t)=>e(t))}function c(e,o){const r=s(e),n=e=>t.createElement(r,null,r=>t.createElement(o,Object.assign({},e,r)));return n.displayName="Connect("+(o.displayName||o.name||'Unknown')+")",n}const a='undefined'!=typeof window?t.useLayoutEffect:t.useEffect,u=(e,t)=>t,{store:i}=effector.createDomain('Gate');e.connect=e=>t=>c(t,e),e.createComponent=n,e.createContextComponent=function(e,o,r){var n,c;const a=s(e);return c=n=class extends t.Component{constructor(...e){super(...e),this.renderProp=e=>r(this.props,e,this.context)}render(){return t.createElement(a,null,this.renderProp)}},n.contextType=o,c},e.createGate=function e(o="gate",r={}){const n=i(Boolean(0)),s=i(r),{set:c}=effector.createApi(s,{set:(e,t)=>t}),{open:a,close:u,destructor:f}=effector.createApi(n,{open:()=>p.predicate()&&Boolean(1),close:()=>Boolean(0),destructor:()=>Boolean(0)});class p extends t.PureComponent{static childGate(t="Subgate"){const r=e(o+"/"+t);r.predicate=()=>p.status.getState();let n=0,s=0;return r.open.watch(()=>{s||(n=1)}),r.close.watch(()=>{s||(n=0)}),p.status.watch(e=>{s=1,n&&e&&!r.status.getState()&&r.open(),s=0}),p.close.watch(()=>{s=1,r.close(),s=0}),p.destructor.watch(()=>r.destructor()),r}componentDidMount(){p.open()}componentWillUnmount(){p.close()}render(){return p.set(this.props),null}}p.predicate=()=>Boolean(1),p.displayName="Gate:"+o,p.isOpen=Boolean(0),p.current=s.getState(),p.open=a,p.close=u,p.status=n,p.state=s,p.set=c,p.destructor=f,p.isTerminated=Boolean(0);const l=n.watch(e=>p.isOpen=e),d=s.watch(e=>p.current=e);n.map(e=>{e||(p.current=r)}),s.reset(u);const m=f.watch(()=>{p.isTerminated=Boolean(1)}),y=f.watch(()=>{y(),l(),d(),m(),p.status.off(p.open),p.status.off(p.close),p.status.off(p.destructor),p.state.off(p.set)});return p},e.createReactState=c,e.createStoreConsumer=s,e.useGate=(e,t={})=>{a(()=>(e.open(),()=>e.close()),[e]),e.set(t)},e.useList=(e,o)=>{let n,s=[];if('object'==typeof o&&null!==o?(o.keys&&(s=o.keys),n=o.fn):n=o,!effector.is.store(e))throw Error('expect useList first argument to be a store');if('function'!=typeof n)throw Error("expect useList's renderItem to be a function");if(!Array.isArray(s))throw Error("expect useList's keys to be an array");const c=t.useMemo(()=>{const o=({index:t,keys:o})=>{const n=r({store:e,keys:[t,...o],fn:(e,t)=>e[t[0]]});return u.current(n,t)};return o.displayName=(e.shortName||'Unknown')+".Item",t.memo(o)},[e]),a=r({store:e,keys:[e],fn:e=>e.length}),u=t.useRef(n);u.current=n;const i=t.useMemo(()=>s,s);return Array.from({length:a},(e,o)=>t.createElement(c,{index:o,key:o,keys:i}))},e.useStore=o,e.useStoreMap=r,Object.defineProperty(e,'__esModule',{value:1})},void('object'==typeof exports&&'undefined'!=typeof module?t(exports,require('react'),require('effector')):'function'==typeof define&&define.amd?define(['exports','react','effector'],t):t((e=e||self).effectorReact={},e.React,e.effector));var e,t; | ||
//# sourceMappingURL=effector-react.umd.js.map |
@@ -25,3 +25,7 @@ import * as React from 'react' | ||
export function useStore<State>(store: Store<State>): State | ||
export function useStoreMap<State, Result, Keys extends (ReadonlyArray<any> | any[])>(opts: { | ||
export function useStoreMap< | ||
State, | ||
Result, | ||
Keys extends ReadonlyArray<any> | any[] | ||
>(opts: { | ||
readonly store: Store<State> | ||
@@ -33,3 +37,8 @@ readonly keys: Keys | ||
list: Store<T[]>, | ||
renderItem: (item: T, index: number) => React.ReactNode, | ||
renderItem: | ||
| { | ||
readonly keys?: any[] | ||
readonly fn: (item: T, index: number) => React.ReactNode | ||
} | ||
| ((item: T, index: number) => React.ReactNode), | ||
): React.ReactNode | ||
@@ -36,0 +45,0 @@ |
{ | ||
"name": "effector-react", | ||
"version": "20.3.0", | ||
"version": "20.4.0", | ||
"description": "React bindings for effector", | ||
@@ -33,14 +33,14 @@ "main": "effector-react.cjs.js", | ||
"keywords": [ | ||
"data", | ||
"datastructure", | ||
"react", | ||
"state manager", | ||
"reactive", | ||
"functional", | ||
"collection", | ||
"state", | ||
"store", | ||
"reactive", | ||
"event", | ||
"effect", | ||
"data", | ||
"streams", | ||
"state", | ||
"actions", | ||
"effects", | ||
"redux", | ||
"react" | ||
"redux" | ||
], | ||
@@ -47,0 +47,0 @@ "author": "Zero Bias", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
107228
151