New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

effector-react

Package Overview
Dependencies
Maintainers
6
Versions
144
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

effector-react - npm Package Compare versions

Comparing version 22.5.4 to 23.0.0-rc.1

68

compat.d.ts
import React from 'react'
import {Store, Event, Effect, Domain, Scope} from 'effector'
import {Store, Event, Effect, Domain, Scope, EventCallable} from 'effector'

@@ -21,2 +21,5 @@ export const Provider: React.Provider<Scope>

/**
* @deprecated use useUnit hook instead
*/
export function useStore<State>(

@@ -89,2 +92,5 @@ store: Store<State>,

/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, State>(

@@ -94,2 +100,5 @@ store: Store<State>,

): StoreView<State, Props>
/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, Shape extends object>(

@@ -107,10 +116,4 @@ store: Shape,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createContextComponent<Props, State, Context>(
store: Store<State>,
context: React.Context<Context>,
view: (props: Props, state: State, context: Context) => React.ReactNode,
): React.ComponentType<Props>
export function connect<

@@ -120,2 +123,5 @@ State extends object,

>(store: Store<State>): (Component: Com) => React.ComponentType<State>
/**
* @deprecated use useUnit hook instead
*/
export function connect<

@@ -126,2 +132,5 @@ State extends object,

/**
* @deprecated use useUnit hook instead
*/
export function createStoreConsumer<State>(

@@ -132,17 +141,18 @@ store: Store<State>,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createReactState<
State extends object,
Com extends React.ComponentType<any>,
>(store: Store<State>, Component: Com): React.ComponentType<State>
export function useEvent(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},
): (payload: T) => T
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<R>(

@@ -152,2 +162,5 @@ fx: Effect<void, R, any>,

): () => Promise<R>
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T, R>(

@@ -157,7 +170,7 @@ fx: Effect<T, R, any>,

): (payload: T) => Promise<R>
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>(
export function useEvent<List extends (EventCallable<any> | Effect<any, any>)[]>(
list: [...List],
opts?: {forceScope?: boolean},
): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -168,4 +181,7 @@ : List[Key] extends Effect<infer P, infer D, any>

}
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<
Shape extends Record<string, Event<any> | Effect<any, any, any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any>>,
>(

@@ -175,3 +191,3 @@ shape: Shape,

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -194,7 +210,7 @@ : Shape[Key] extends Effect<infer P, infer D, any>

export function useUnit(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
export function useUnit<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},

@@ -211,3 +227,3 @@ ): (payload: T) => T

export function useUnit<
List extends (Event<any> | Effect<any, any> | Store<any>)[],
List extends (EventCallable<any> | Effect<any, any> | Store<any>)[],
>(

@@ -217,3 +233,3 @@ list: [...List],

): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -231,3 +247,3 @@ ? () => void

export function useUnit<
Shape extends Record<string, Event<any> | Effect<any, any, any> | Store<any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any> | Store<any>>,
>(

@@ -237,3 +253,3 @@ shape: Shape | {'@@unitShape': () => Shape},

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -240,0 +256,0 @@ ? () => void

@@ -1,2 +0,2 @@

'use strict';function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t,n,r){var o=[d.step.mov({store:e.stateRef,to:'stack'}),d.step.run({fn:function(e){return t(e)}})];if(r&&o.unshift(r),n){var u=d.createNode({node:o,meta:{watchOp:"store"}}),a=e.graphite.id,c=n.additionalLinks,s=c[a]||[];return c[a]=s,s.push(u),function(){var e=s.indexOf(u);-1!==e&&s.splice(e,1),d.clearNode(u)}}var i=d.createNode({node:o,parent:[e],family:{owners:e}});return function(){d.clearNode(i)}}function n(e,t){return t.displayName=e,t}function r(e,n){d.is.store(e)||b('expect useStore argument to be a store');var r=h.useCallback((function(r){return t(e,r,n)}),[e,n]),o=h.useCallback((function(){return x(e,n)}),[e,n]);return y.useSyncExternalStore(r,o,o)}function o(e,n){var r=d.is.unit(e),o={};r?o={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?o=e['@@unitShape']():b('expect @@unitShape to be a function'):o=e;var u=Array.isArray(o),a=h.useRef({stale:1,justSubscribed:0,scope:n}),c=h.useMemo((function(){a.current.stale=1;var e=Array.isArray(o)?[]:{},t=[],r=[],u=[],c=[];for(var s in o){var i=o[s];d.is.unit(i)||b('expect useUnit argument to be a unit'),d.is.event(i)||d.is.effect(i)?(e[s]=n?d.scopeBind(i,{scope:n}):i,u.push(s),c.push(i)):(e[s]=null,t.push(s),r.push(i))}return[e,t,r,u,c]}),[a,n].concat(Object.keys(o),Object.values(o))),s=c[0],i=c[1],f=c[2],l=c[3],v=c[4],p=h.useRef({value:s,storeKeys:i,eventKeys:l,eventValues:v}),m=h.useCallback((function(e){var r=a.current;r.justSubscribed=1;var o=function(){r.stale||(r.stale=1,e())},u=d.step.compute({priority:'sampler',batch:1}),c=f.map((function(e){return t(e,o,n,u)}));return function(){c.forEach((function(e){return e()}))}}),[f,n,p,a]),S=h.useCallback((function(){var e,t=p.current,o=a.current,c=0,d=t.value,y=t.storeKeys,m=t.eventKeys,h=t.eventValues,b=n!==o.scope;if(o.stale||o.justSubscribed||b){c=!o.justSubscribed||b,e=u?[].concat(s):Object.assign({},s),y.length===i.length&&m.length===l.length||(c=1);for(var S=0;S<i.length;S++){var g=x(f[S],n),k=i[S];c||(c=y.includes(k)?d[k]!==g:1),e[k]=g}for(var j=0;j<l.length;j++){var C=v[j],E=l[j];c||(c=m.includes(E)?h[m.indexOf(E)]!==C:1)}}return c&&(t.value=e),t.storeKeys=i,t.eventKeys=l,t.eventValues=v,o.stale=0,o.justSubscribed=!c,o.scope=n,r?t.value.unit:t.value}),[m,f,v,n,p,a]);return y.useSyncExternalStore(m,S,S)}function u(e,n){var r,o,u,a,c=e[0],s=e[1],i=g;if(s)r=s,u=c,a=[];else{r=c.fn,u=c.store,a=c.keys,o=c.defaultValue;var f=c.updateFilter;i=void 0===f?g:f}d.is.store(u)||b('useStoreMap expects a store'),Array.isArray(a)||b('useStoreMap expects an array as keys'),'function'!=typeof r&&b('useStoreMap expects a function');var l=h.useCallback((function(e){return t(u,e,n)}),[u,n]),v=h.useCallback((function(){return x(u,n)}),[u,n]),p=h.useRef(),y=h.useRef(),S=h.useRef(a);return m.useSyncExternalStoreWithSelector(l,v,v,(function(e){if(p.current!==e||!function(e,t){if(!e||!t||e.length!==t.length)return 0;for(var n=1,r=0;r<e.length;r++)if(e[r]!==t[r]){n=0;break}return n}(S.current,a)){var t=r(e,a);void 0===t&&void 0!==o&&(t=o),p.current=e,S.current=a,void 0!==t&&(y.current=t)}return y.current}),(function(e,t){return!i(t,e)}))}function a(e,t,n){void 0===t&&(t={});var r=o({open:e.open,close:e.close,set:e.set},n),u=r.open,a=r.close,c=r.set,s=h.useMemo((function(){return{open:u,close:a,set:c}}),[e,u]),i=h.useRef({value:null,count:0});S((function(){return s.open(i.current.value),function(){return s.close(i.current.value)}}),[s]),function(e,t){if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return 0;for(var o=0;o<n.length;o++){var u=n[o];if(e[u]!==t[u])return 0}return 1}return 0}(i.current.value,t)||(i.current.value=t,i.current.count+=1),S((function(){s.set(i.current.value)}),[i.current.count])}function c(e){var t=h.useContext(k);return e&&!t&&b('No scope found, consider adding <Provider> to app root'),t}function s(e,t){return r(e,c(null==t?void 0:t.forceScope))}function i(e,t){function r(e){var n=h.useRef(e),r=s(o);S((function(){return a({props:n.current,state:o.getState()}),function(){c({props:n.current,state:o.getState()})}}),[]);var u=t(e,r);return n.current=e,u}var o;d.is.store(e)?o=e:'object'==typeof e&&null!==e?o=d.combine(e):b('shape should be a store or object with stores');var u='Unknown';o&&o.shortName&&(u=o.shortName);var a=d.createEvent(),c=d.createEvent();return r.mounted=a,r.unmounted=c,n(u+".View",r)}function f(e,t){var n,r=t?e:e[0];(function(e){if(!e)throw Error('expect first argument be an object')})(E(n=r)||function(e){return'function'==typeof e}(n));var o=r.or,u=r.and;if(u){var a=t?u:u[0];if(E(a)&&'and'in a){var c=f(u,t);e=c[0],o=Object.assign({},o,c[1])}else e=u}return[e,o]}function l(e){function t(e){return u(t,e,c()),null}var r=e.domain,o=e.defaultState,u=e.hook,a=w({or:e.maybeConfig,and:e.mainConfig}),s=(r?r.compositeName.fullName+"/":'')+(a.name||'gate'),i=d.createEvent({name:s+".set",sid:a.sid?a.sid+"|set":void 0}),f=d.createEvent({name:s+".open",sid:a.sid?a.sid+"|open":void 0}),l=d.createEvent({name:s+".close",sid:a.sid?a.sid+"|close":void 0}),v=d.createStore(Boolean(0),{name:s+".status",serialize:'ignore'}).on(f,(function(){return Boolean(1)})).on(l,(function(){return Boolean(0)})),p=d.createStore(o,{name:s+".state",sid:a.sid}).on(i,(function(e,t){return t})).on(f,(function(e,t){return t})).reset(l);if(r){var y=r.hooks;d.launch({target:[y.store,y.store,y.event,y.event,y.event],params:[v,p,f,l,i]})}return t.open=f,t.close=l,t.status=v,t.state=p,t.set=i,n("Gate:"+s,t)}function v(e,t){var n,r,o,u=f(t&&E(n=t[0])&&(n.and||n.or)?t:[{and:t}]),a=u[0],c=a[0],s=a[1],i={},l={},v=u[1];return'string'==typeof c?(l={name:c},E(o=s)&&'sid'in o||(i=s||{})):function(e){return E(e)&&('domain'in e||'defaultState'in e||'name'in e)}(c)&&(l=c,i=c.defaultState||{},r=c.domain),{hook:e,domain:r,defaultState:i,mainConfig:l,maybeConfig:v}}Object.defineProperty(exports,'__esModule',{value:1});var p=require('react'),d=require('effector/compat'),y=require('use-sync-external-store/shim/index.js'),m=require('use-sync-external-store/shim/with-selector.js'),h=e(p),b=function(e){throw Error(e)},S='undefined'!=typeof window?h.useLayoutEffect:h.useEffect,x=function(e,t){return t?t.getState(e):e.getState()},g=function(e,t){return e!==t},k=h.createContext(null),j=function(e){return console.error(e+" is deprecated")},C=function(e){return function(t){var r=e;return'function'!=typeof e&&(r=t,t=e),n("Connect("+(r.displayName||r.name||'Unknown')+")",(function(e){return h.createElement(r,Object.assign({},e,s(t)))}))}},E=function(e){return'object'==typeof e&&null!==e},w=function e(t,n){return void 0===n&&(n={}),E(t)&&(e(t.or,n),function(e){for(var t in e)o=t,function(e){return void 0===e}(r=e[t])||'or'===o||'and'===o||(n[o]=r);var r,o}(t),e(t.and,n)),n};exports.Provider=k.Provider,exports.connect=C,exports.createComponent=i,exports.createContextComponent=function(e,t,r){return j('createContextComponent'),n((e.shortName||'Unknown')+".ContextComponent",(function(n){var o=h.useContext(t),u=s(e);return r(n,u,o)}))},exports.createGate=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return l(v(a,t))},exports.createReactState=function(e,t){return j('createReactState'),C(t)(e)},exports.createStoreConsumer=function(e){return i(e,(function(e,t){return(0,e.children)(t)}))},exports.useEvent=function(e,t){return function(e,t){if(!t)return e;var n=d.is.unit(e)||'object'!=typeof e?{event:e}:e;return h.useMemo((function(){if(d.is.unit(e))return d.scopeBind(e,{scope:t});var n=Array.isArray(e)?[]:{};for(var r in e)n[r]=d.scopeBind(e[r],{scope:t});return n}),[t].concat(Object.keys(n),Object.values(n)))}(e,c(null==t?void 0:t.forceScope))},exports.useGate=function(e,t,n){return void 0===t&&(t={}),a(e,t,c(null==n?void 0:n.forceScope))},exports.useList=function(e,t,o){return function(e,t,o){var a,c,s,i=[];'object'==typeof t&&null!==t?(t.keys&&(i=t.keys),a=t.fn,c=t.getKey,s=t.placeholder):a=t,d.is.store(e)||b('expect useList first argument to be a store'),'function'!=typeof a&&b("expect useList's renderItem to be a function"),Array.isArray(i)||b("expect useList's keys to be an array");var f=h.useMemo((function(){var t=n((e.shortName||'Unknown')+".Item",(function(t){var n=t.index,r=t.keys;if(l.current[1])return l.current[0](t.value,t.keyVal);var a=u([{store:e,keys:[n].concat(r),fn:function(e,t){return e[t[0]]}}],o);return l.current[0](a,n)}));return h.memo(t)}),[e,o,!!c]),l=h.useRef([a,c]);l.current=[a,c];var v=h.useMemo((function(){return i}),i);if(c){var p=r(e,o);return 0===p.length&&s?s:p.map((function(e){var t=l.current[1](e);return h.createElement(f,{keyVal:t,key:t,keys:v,value:e})}))}var y=u([{store:e,keys:[e],fn:function(e){return e.length}}],o);return 0===y&&s?s:Array.from({length:y},(function(e,t){return h.createElement(f,{index:t,key:t,keys:v})}))}(e,t,c(null==o?void 0:o.forceScope))},exports.useStore=s,exports.useStoreMap=function(e,t){return u([e,t],c(null==e?void 0:e.forceScope))},exports.useUnit=function(e,t){return o(e,c(null==t?void 0:t.forceScope))};
'use strict';function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t){return t.displayName=e,t}function n(e,t){S(1,'useStore','useUnit'),p.is.store(e)||b('expect useStore argument to be a store');var n=m.useCallback((function(n){return p.createWatch({unit:e,fn:n,scope:t})}),[e,t]),r=m.useCallback((function(){return g(e,t)}),[e,t]);return d.useSyncExternalStore(n,r,r)}function r(e,t){var n=p.is.unit(e),r={};n?r={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?r=e['@@unitShape']():b('expect @@unitShape to be a function'):r=e;var u=Array.isArray(r),o=m.useRef({stale:1,justSubscribed:0,scope:t}),a=m.useMemo((function(){o.current.stale=1;var e=Array.isArray(r)?[]:{},n=[],u=[],a=[],s=[];for(var c in r){var i=r[c];p.is.unit(i)||b('expect useUnit argument to be a unit'),p.is.event(i)||p.is.effect(i)?(e[c]=t?p.scopeBind(i,{scope:t}):i,a.push(c),s.push(i)):(e[c]=null,n.push(c),u.push(i))}return[e,n,u,a,s]}),[o,t].concat(Object.keys(r),Object.values(r))),s=a[0],c=a[1],i=a[2],f=a[3],l=a[4],v=m.useRef({value:s,storeKeys:c,eventKeys:f,eventValues:l}),y=m.useCallback((function(e){var n=o.current;return n.justSubscribed=1,p.createWatch({unit:i,fn:function(){n.stale||(n.stale=1,e())},scope:t,batch:1})}),[i,t,v,o]),h=m.useCallback((function(){var e,r=v.current,a=o.current,p=0,d=r.value,y=r.storeKeys,m=r.eventKeys,b=r.eventValues,h=t!==a.scope;if(a.stale||a.justSubscribed||h){p=!a.justSubscribed||h,e=u?[].concat(s):Object.assign({},s),y.length===c.length&&m.length===f.length||(p=1);for(var S=0;S<c.length;S++){var x=g(i[S],t),k=c[S];p||(p=y.includes(k)?d[k]!==x:1),e[k]=x}for(var j=0;j<f.length;j++){var E=l[j],C=f[j];p||(p=m.includes(C)?b[m.indexOf(C)]!==E:1)}}return p&&(r.value=e),r.storeKeys=c,r.eventKeys=f,r.eventValues=l,a.stale=0,a.justSubscribed=!p,a.scope=t,n?r.value.unit:r.value}),[y,i,l,t,v,o]);return d.useSyncExternalStore(y,h,h)}function u(e,t){var n,r,u,o,a=e[0],s=e[1],c=x;if(s)n=s,u=a,o=[];else{n=a.fn,u=a.store,o=a.keys,r=a.defaultValue;var i=a.updateFilter;c=void 0===i?x:i}p.is.store(u)||b('useStoreMap expects a store'),Array.isArray(o)||b('useStoreMap expects an array as keys'),'function'!=typeof n&&b('useStoreMap expects a function');var f=m.useCallback((function(e){return p.createWatch({unit:u,fn:e,scope:t})}),[u,t]),l=m.useCallback((function(){return g(u,t)}),[u,t]),v=m.useRef(),d=m.useRef(),h=m.useRef(o);return y.useSyncExternalStoreWithSelector(f,l,l,(function(e){if(v.current!==e||!function(e,t){if(!e||!t||e.length!==t.length)return 0;for(var n=1,r=0;r<e.length;r++)if(e[r]!==t[r]){n=0;break}return n}(h.current,o)){var t=n(e,o);void 0===t&&void 0!==r&&(t=r),v.current=e,h.current=o,void 0!==t&&(d.current=t)}return d.current}),(function(e,t){return!c(t,e)}))}function o(e,t,n){void 0===t&&(t={});var u=r({open:e.open,close:e.close,set:e.set},n),o=u.open,a=u.close,s=u.set,c=m.useMemo((function(){return{open:o,close:a,set:s}}),[e,o]),i=m.useRef({value:null,count:0});h((function(){return c.open(i.current.value),function(){return c.close(i.current.value)}}),[c]),function(e,t){if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return 0;for(var u=0;u<n.length;u++){var o=n[u];if(e[o]!==t[o])return 0}return 1}return 0}(i.current.value,t)||(i.current.value=t,i.current.count+=1),h((function(){c.set(i.current.value)}),[i.current.count])}function a(e){var t=m.useContext(k);return e&&!t&&b('No scope found, consider adding <Provider> to app root'),t}function s(e,t){return n(e,a(null==t?void 0:t.forceScope))}function c(e,n){function r(e){var t=m.useRef(e),r=s(u);h((function(){return a({props:t.current,state:u.getState()}),function(){c({props:t.current,state:u.getState()})}}),[]);var o=n(e,r);return t.current=e,o}var u;j('createComponent','@effector/reflect'),p.is.store(e)?u=e:'object'==typeof e&&null!==e?u=p.combine(e):b('shape should be a store or object with stores');var o='Unknown';u&&u.shortName&&(o=u.shortName);var a=p.createEvent(),c=p.createEvent();return r.mounted=a,r.unmounted=c,t(o+".View",r)}function i(e){var t,n=e[0];(function(e){if(!e)throw Error('expect first argument be an object')})(E(t=n)||function(e){return'function'==typeof e}(t));var r=n.or,u=n.and;if(u){var o=u[0];if(E(o)&&'and'in o){var a=i(u);e=a[0],r=Object.assign({},r,a[1])}else e=u}return[e,r]}function f(e){function n(e){return o(n,e,a()),null}var r=e.domain,u=e.defaultState,o=e.hook,s=C({or:e.maybeConfig,and:e.mainConfig}),c=(r?r.compositeName.fullName+"/":'')+(s.name||'gate'),i=p.createEvent({name:c+".set",sid:s.sid?s.sid+"|set":void 0}),f=p.createEvent({name:c+".open",sid:s.sid?s.sid+"|open":void 0}),l=p.createEvent({name:c+".close",sid:s.sid?s.sid+"|close":void 0}),v=p.createStore(Boolean(0),{name:c+".status",serialize:'ignore'}).on(f,(function(){return Boolean(1)})).on(l,(function(){return Boolean(0)})),d=p.createStore(u,{name:c+".state",sid:s.sid}).on(i,(function(e,t){return t})).on(f,(function(e,t){return t})).reset(l);if(r){var y=r.hooks;p.launch({target:[y.store,y.store,y.event,y.event,y.event],params:[v,d,f,l,i]})}return n.open=f,n.close=l,n.status=v,n.state=d,n.set=i,t("Gate:"+c,n)}function l(e,t){var n,r,u,o=i(t&&E(n=t[0])&&(n.and||n.or)?t:[{and:t}]),a=o[0],s=a[0],c=a[1],f={},l={},v=o[1];return'string'==typeof s?(l={name:s},E(u=c)&&'sid'in u||(f=c||{})):function(e){return E(e)&&('domain'in e||'defaultState'in e||'name'in e)}(s)&&(l=s,f=s.defaultState||{},r=s.domain),{hook:e,domain:r,defaultState:f,mainConfig:l,maybeConfig:v}}Object.defineProperty(exports,'__esModule',{value:1});var v=require('react'),p=require('effector/compat'),d=require('use-sync-external-store/shim/index.js'),y=require('use-sync-external-store/shim/with-selector.js'),m=e(v),b=function(e){throw Error(e)},h='undefined'!=typeof window?m.useLayoutEffect:m.useEffect,S=function(e,t,n){v.useEffect((function(){e&&console.error(t+" is deprecated"+(n?", prefer "+n+" instead":''))}),[e,t,n])},g=function(e,t){return t?t.getState(e):e.getState()},x=function(e,t){return e!==t},k=m.createContext(null),j=function(e,t){console.error(e+" is deprecated"+(t?", use "+t+" instead":''))},E=function(e){return'object'==typeof e&&null!==e},C=function e(t,n){return void 0===n&&(n={}),E(t)&&(e(t.or,n),function(e){for(var t in e)u=t,function(e){return void 0===e}(r=e[t])||'or'===u||'and'===u||(n[u]=r);var r,u}(t),e(t.and,n)),n};exports.Provider=k.Provider,exports.connect=function(e){return j('connect','useUnit'),function(n){var r=e;return'function'!=typeof e&&(r=n,n=e),t("Connect("+(r.displayName||r.name||'Unknown')+")",(function(e){return m.createElement(r,Object.assign({},e,s(n)))}))}},exports.createComponent=c,exports.createGate=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return f(l(o,t))},exports.createStoreConsumer=function(e){return j('createStoreConsumer','useUnit'),c(e,(function(e,t){return(0,e.children)(t)}))},exports.useEvent=function(e,t){return function(e,t){if(S(1,'useEvent','useUnit'),!t)return e;var n=p.is.unit(e)||'object'!=typeof e?{event:e}:e;return m.useMemo((function(){if(p.is.unit(e))return p.scopeBind(e,{scope:t});var n=Array.isArray(e)?[]:{};for(var r in e)n[r]=p.scopeBind(e[r],{scope:t});return n}),[t].concat(Object.keys(n),Object.values(n)))}(e,a(null==t?void 0:t.forceScope))},exports.useGate=function(e,t,n){return void 0===t&&(t={}),o(e,t,a(null==n?void 0:n.forceScope))},exports.useList=function(e,r,o){return function(e,r,o){var a,s,c,i=[];'object'==typeof r&&null!==r?(r.keys&&(i=r.keys),a=r.fn,s=r.getKey,c=r.placeholder):a=r,p.is.store(e)||b('expect useList first argument to be a store'),'function'!=typeof a&&b("expect useList's renderItem to be a function"),Array.isArray(i)||b("expect useList's keys to be an array");var f=m.useMemo((function(){var n=t((e.shortName||'Unknown')+".Item",(function(t){var n=t.index,r=t.keys;if(l.current[1])return l.current[0](t.value,t.keyVal);var a=u([{store:e,keys:[n].concat(r),fn:function(e,t){return e[t[0]]}}],o);return l.current[0](a,n)}));return m.memo(n)}),[e,o,!!s]),l=m.useRef([a,s]);l.current=[a,s];var v=m.useMemo((function(){return i}),i);if(s){var d=n(e,o);return 0===d.length&&c?c:d.map((function(e){var t=l.current[1](e);return m.createElement(f,{keyVal:t,key:t,keys:v,value:e})}))}var y=u([{store:e,keys:[e],fn:function(e){return e.length}}],o);return 0===y&&c?c:Array.from({length:y},(function(e,t){return m.createElement(f,{index:t,key:t,keys:v})}))}(e,r,a(null==o?void 0:o.forceScope))},exports.useStore=s,exports.useStoreMap=function(e,t){return u([e,t],a(null==e?void 0:e.forceScope))},exports.useUnit=function(e,t){return r(e,a(null==t?void 0:t.forceScope))};
//# sourceMappingURL=compat.js.map
import React from 'react'
import {Store, Event, Effect, Domain, Scope} from 'effector'
import {Store, Event, Effect, Domain, Scope, EventCallable} from 'effector'

@@ -21,2 +21,5 @@ export const Provider: React.Provider<Scope>

/**
* @deprecated use useUnit hook instead
*/
export function useStore<State>(

@@ -89,2 +92,5 @@ store: Store<State>,

/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, State>(

@@ -94,2 +100,5 @@ store: Store<State>,

): StoreView<State, Props>
/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, Shape extends object>(

@@ -107,10 +116,4 @@ store: Shape,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createContextComponent<Props, State, Context>(
store: Store<State>,
context: React.Context<Context>,
view: (props: Props, state: State, context: Context) => React.ReactNode,
): React.ComponentType<Props>
export function connect<

@@ -120,2 +123,5 @@ State extends object,

>(store: Store<State>): (Component: Com) => React.ComponentType<State>
/**
* @deprecated use useUnit hook instead
*/
export function connect<

@@ -126,2 +132,5 @@ State extends object,

/**
* @deprecated use useUnit hook instead
*/
export function createStoreConsumer<State>(

@@ -132,17 +141,18 @@ store: Store<State>,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createReactState<
State extends object,
Com extends React.ComponentType<any>,
>(store: Store<State>, Component: Com): React.ComponentType<State>
export function useEvent(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},
): (payload: T) => T
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<R>(

@@ -152,2 +162,5 @@ fx: Effect<void, R, any>,

): () => Promise<R>
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T, R>(

@@ -157,7 +170,7 @@ fx: Effect<T, R, any>,

): (payload: T) => Promise<R>
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>(
export function useEvent<List extends (EventCallable<any> | Effect<any, any>)[]>(
list: [...List],
opts?: {forceScope?: boolean},
): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -168,4 +181,7 @@ : List[Key] extends Effect<infer P, infer D, any>

}
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<
Shape extends Record<string, Event<any> | Effect<any, any, any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any>>,
>(

@@ -175,3 +191,3 @@ shape: Shape,

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -194,7 +210,7 @@ : Shape[Key] extends Effect<infer P, infer D, any>

export function useUnit(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
export function useUnit<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},

@@ -211,3 +227,3 @@ ): (payload: T) => T

export function useUnit<
List extends (Event<any> | Effect<any, any> | Store<any>)[],
List extends (EventCallable<any> | Effect<any, any> | Store<any>)[],
>(

@@ -217,3 +233,3 @@ list: [...List],

): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -231,3 +247,3 @@ ? () => void

export function useUnit<
Shape extends Record<string, Event<any> | Effect<any, any, any> | Store<any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any> | Store<any>>,
>(

@@ -237,3 +253,3 @@ shape: Shape | {'@@unitShape': () => Shape},

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -240,0 +256,0 @@ ? () => void

@@ -1,2 +0,2 @@

function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t,r,n){let o=[effector.step.mov({store:e.stateRef,to:'stack'}),effector.step.run({fn:e=>t(e)})];if(n&&o.unshift(n),r){let t=effector.createNode({node:o,meta:{watchOp:"store"}}),n=e.graphite.id,s=r.additionalLinks,u=s[n]||[];return s[n]=u,u.push(t),()=>{let e=u.indexOf(t);-1!==e&&u.splice(e,1),effector.clearNode(t)}}{let t=effector.createNode({node:o,parent:[e],family:{owners:e}});return()=>{effector.clearNode(t)}}}function r(e,t){return t.displayName=e,t}function n(e,r){effector.is.store(e)||v('expect useStore argument to be a store');let n=m.useCallback((n=>t(e,n,r)),[e,r]),o=m.useCallback((()=>b(e,r)),[e,r]);return d.useSyncExternalStore(n,o,o)}function o(e,r){let n=effector.is.unit(e),o={};n?o={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?o=e['@@unitShape']():v('expect @@unitShape to be a function'):o=e;let s=Array.isArray(o),u=m.useRef({stale:1,justSubscribed:0,scope:r}),[a,l,c,i,f]=m.useMemo((()=>{u.current.stale=1;let e=Array.isArray(o)?[]:{},t=[],n=[],s=[],a=[];for(let u in o){let l=o[u];effector.is.unit(l)||v('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[u]=r?effector.scopeBind(l,{scope:r}):l,s.push(u),a.push(l)):(e[u]=null,t.push(u),n.push(l))}return[e,t,n,s,a]}),[u,r,...Object.keys(o),...Object.values(o)]),p=m.useRef({value:a,storeKeys:l,eventKeys:i,eventValues:f}),y=m.useCallback((e=>{let n=u.current;n.justSubscribed=1;let o=()=>{n.stale||(n.stale=1,e())},s=effector.step.compute({priority:'sampler',batch:1}),a=c.map((e=>t(e,o,r,s)));return()=>{a.forEach((e=>e()))}}),[c,r,p,u]),h=m.useCallback((()=>{let e,t=p.current,o=u.current,d=0,y=t.value,m=t.storeKeys,v=t.eventKeys,h=t.eventValues,S=r!==o.scope;if(o.stale||o.justSubscribed||S){d=!o.justSubscribed||S,e=s?[...a]:{...a},m.length===l.length&&v.length===i.length||(d=1);for(let t=0;t<l.length;t++){let n=b(c[t],r),o=l[t];d||(d=m.includes(o)?y[o]!==n:1),e[o]=n}for(let e=0;e<i.length;e++){let t=f[e],r=i[e];d||(d=v.includes(r)?h[v.indexOf(r)]!==t:1)}}return d&&(t.value=e),t.storeKeys=l,t.eventKeys=i,t.eventValues=f,o.stale=0,o.justSubscribed=!d,o.scope=r,n?t.value.unit:t.value}),[y,c,f,r,p,u]);return d.useSyncExternalStore(y,h,h)}function s([e,r],n){let o,s,u,a,l=S;r?(o=r,u=e,a=[]):({fn:o,store:u,keys:a,defaultValue:s,updateFilter:l=S}=e),effector.is.store(u)||v('useStoreMap expects a store'),Array.isArray(a)||v('useStoreMap expects an array as keys'),'function'!=typeof o&&v('useStoreMap expects a function');let c=m.useCallback((e=>t(u,e,n)),[u,n]),i=m.useCallback((()=>b(u,n)),[u,n]),f=m.useRef(),p=m.useRef(),d=m.useRef(a);return y.useSyncExternalStoreWithSelector(c,i,i,(e=>{if(f.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let r=1;for(let n=0;n<e.length;n++)if(e[n]!==t[n]){r=0;break}return r})(d.current,a)){let t=o(e,a);void 0===t&&void 0!==s&&(t=s),f.current=e,d.current=a,void 0!==t&&(p.current=t)}return p.current}),((e,t)=>!l(t,e)))}function u(e,t={},r){let{open:n,close:s,set:u}=o({open:e.open,close:e.close,set:e.set},r),a=m.useMemo((()=>({open:n,close:s,set:u})),[e,n]),l=m.useRef({value:null,count:0});h((()=>(a.open(l.current.value),()=>a.close(l.current.value))),[a]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return 0;for(let n=0;n<r.length;n++){let o=r[n];if(e[o]!==t[o])return 0}return 1}return 0})(l.current.value,t)||(l.current.value=t,l.current.count+=1),h((()=>{a.set(l.current.value)}),[l.current.count])}function a(e){let t=m.useContext(x);return e&&!t&&v('No scope found, consider adding <Provider> to app root'),t}function l(e,t){return n(e,a(null==t?void 0:t.forceScope))}function c(e,t){function n(e){let r=m.useRef(e),n=l(o);h((()=>(u({props:r.current,state:o.getState()}),()=>{a({props:r.current,state:o.getState()})})),[]);let s=t(e,n);return r.current=e,s}let o;effector.is.store(e)?o=e:'object'==typeof e&&null!==e?o=effector.combine(e):v('shape should be a store or object with stores');let s='Unknown';o&&o.shortName&&(s=o.shortName);let u=effector.createEvent(),a=effector.createEvent();return n.mounted=u,n.unmounted=a,r(`${s}.View`,n)}function i(e,t){let r=t?e:e[0];var n;(e=>{if(!e)throw Error('expect first argument be an object')})(C(n=r)||(e=>'function'==typeof e)(n));let o=r.or,s=r.and;if(s){let r=t?s:s[0];if(C(r)&&'and'in r){let r=i(s,t);e=r[0],o={...o,...r[1]}}else e=s}return[e,o]}function f(e,t){let r=t&&C(n=t[0])&&(n.and||n.or)?t:[{and:t}];var n;let o,[[s,u],a]=i(r),l={},c={},f=a;var p;return'string'==typeof s?(c={name:s},C(p=u)&&'sid'in p||(l=u||{})):(e=>C(e)&&('domain'in e||'defaultState'in e||'name'in e))(s)&&(c=s,l=s.defaultState||{},o=s.domain),{hook:e,domain:o,defaultState:l,mainConfig:c,maybeConfig:f}}Object.defineProperty(exports,'__esModule',{value:1});var p=require('react'),effector=require('effector'),d=require('use-sync-external-store/shim/index.js'),y=require('use-sync-external-store/shim/with-selector.js'),m=e(p);let v=e=>{throw Error(e)},h='undefined'!=typeof window?m.useLayoutEffect:m.useEffect;const b=(e,t)=>t?t.getState(e):e.getState(),S=(e,t)=>e!==t,x=m.createContext(null);let{Provider:g}=x,k=e=>console.error(`${e} is deprecated`),j=e=>t=>{let n=e;return'function'!=typeof e&&(n=t,t=e),r(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>m.createElement(n,{...e,...l(t)})))},C=e=>'object'==typeof e&&null!==e,E=(e,t={})=>(C(e)&&(E(e.or,t),(e=>{for(let o in e)n=o,(e=>void 0===e)(r=e[o])||'or'===n||'and'===n||(t[n]=r);var r,n})(e),E(e.and,t)),t);exports.Provider=g,exports.connect=j,exports.createComponent=c,exports.createContextComponent=(e,t,n)=>(k('createContextComponent'),r(`${e.shortName||'Unknown'}.ContextComponent`,(r=>{let o=m.useContext(t),s=l(e);return n(r,s,o)}))),exports.createGate=(...e)=>(({domain:e,defaultState:t,hook:n,mainConfig:o,maybeConfig:s})=>{function u(e){return n(u,e,a()),null}let l=E({or:s,and:o}),c=`${e?`${e.compositeName.fullName}/`:''}${l.name||'gate'}`,i=effector.createEvent({name:`${c}.set`,sid:l.sid?`${l.sid}|set`:void 0}),f=effector.createEvent({name:`${c}.open`,sid:l.sid?`${l.sid}|open`:void 0}),p=effector.createEvent({name:`${c}.close`,sid:l.sid?`${l.sid}|close`:void 0}),d=effector.createStore(Boolean(0),{name:`${c}.status`,serialize:'ignore'}).on(f,(()=>Boolean(1))).on(p,(()=>Boolean(0))),y=effector.createStore(t,{name:`${c}.state`,sid:l.sid}).on(i,((e,t)=>t)).on(f,((e,t)=>t)).reset(p);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[d,y,f,p,i]})}return u.open=f,u.close=p,u.status=d,u.state=y,u.set=i,r(`Gate:${c}`,u)})(f(u,e)),exports.createReactState=(e,t)=>(k('createReactState'),j(t)(e)),exports.createStoreConsumer=e=>c(e,(({children:e},t)=>e(t))),exports.useEvent=(e,t)=>((e,t)=>{if(!t)return e;let r=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return m.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=effector.scopeBind(e[n],{scope:t});return r}),[t,...Object.keys(r),...Object.values(r)])})(e,a(null==t?void 0:t.forceScope)),exports.useGate=(e,t={},r)=>u(e,t,a(null==r?void 0:r.forceScope)),exports.useList=(e,t,o)=>((e,t,o)=>{let u,a,l,c=[];'object'==typeof t&&null!==t?(t.keys&&(c=t.keys),({fn:u,getKey:a,placeholder:l}=t)):u=t,effector.is.store(e)||v('expect useList first argument to be a store'),'function'!=typeof u&&v("expect useList's renderItem to be a function"),Array.isArray(c)||v("expect useList's keys to be an array");let i=m.useMemo((()=>{let t=r(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:n,keyVal:u,value:a}=t;if(f.current[1])return f.current[0](a,u);let l=s([{store:e,keys:[r,...n],fn:(e,t)=>e[t[0]]}],o);return f.current[0](l,r)}));return m.memo(t)}),[e,o,!!a]),f=m.useRef([u,a]);f.current=[u,a];let p=m.useMemo((()=>c),c);if(a){let t=n(e,o);return 0===t.length&&l?l:t.map((e=>{let t=f.current[1](e);return m.createElement(i,{keyVal:t,key:t,keys:p,value:e})}))}{let t=s([{store:e,keys:[e],fn:e=>e.length}],o);return 0===t&&l?l:Array.from({length:t},((e,t)=>m.createElement(i,{index:t,key:t,keys:p})))}})(e,t,a(null==o?void 0:o.forceScope)),exports.useStore=l,exports.useStoreMap=(e,t)=>s([e,t],a(null==e?void 0:e.forceScope)),exports.useUnit=(e,t)=>o(e,a(null==t?void 0:t.forceScope));
function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t){return t.displayName=e,t}function r(e,t){b(1,'useStore','useUnit'),effector.is.store(e)||v('expect useStore argument to be a store');let r=y.useCallback((r=>effector.createWatch({unit:e,fn:r,scope:t})),[e,t]),n=y.useCallback((()=>h(e,t)),[e,t]);return p.useSyncExternalStore(r,n,n)}function n(e,t){let r=effector.is.unit(e),n={};r?n={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?n=e['@@unitShape']():v('expect @@unitShape to be a function'):n=e;let o=Array.isArray(n),s=y.useRef({stale:1,justSubscribed:0,scope:t}),[u,a,l,c,i]=y.useMemo((()=>{s.current.stale=1;let e=Array.isArray(n)?[]:{},r=[],o=[],u=[],a=[];for(let s in n){let l=n[s];effector.is.unit(l)||v('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[s]=t?effector.scopeBind(l,{scope:t}):l,u.push(s),a.push(l)):(e[s]=null,r.push(s),o.push(l))}return[e,r,o,u,a]}),[s,t,...Object.keys(n),...Object.values(n)]),f=y.useRef({value:u,storeKeys:a,eventKeys:c,eventValues:i}),d=y.useCallback((e=>{let r=s.current;return r.justSubscribed=1,effector.createWatch({unit:l,fn:()=>{r.stale||(r.stale=1,e())},scope:t,batch:1})}),[l,t,f,s]),m=y.useCallback((()=>{let e,n=f.current,p=s.current,d=0,y=n.value,v=n.storeKeys,m=n.eventKeys,b=n.eventValues,S=t!==p.scope;if(p.stale||p.justSubscribed||S){d=!p.justSubscribed||S,e=o?[...u]:{...u},v.length===a.length&&m.length===c.length||(d=1);for(let r=0;r<a.length;r++){let n=h(l[r],t),o=a[r];d||(d=v.includes(o)?y[o]!==n:1),e[o]=n}for(let e=0;e<c.length;e++){let t=i[e],r=c[e];d||(d=m.includes(r)?b[m.indexOf(r)]!==t:1)}}return d&&(n.value=e),n.storeKeys=a,n.eventKeys=c,n.eventValues=i,p.stale=0,p.justSubscribed=!d,p.scope=t,r?n.value.unit:n.value}),[d,l,i,t,f,s]);return p.useSyncExternalStore(d,m,m)}function o([e,t],r){let n,o,s,u,a=S;t?(n=t,s=e,u=[]):({fn:n,store:s,keys:u,defaultValue:o,updateFilter:a=S}=e),effector.is.store(s)||v('useStoreMap expects a store'),Array.isArray(u)||v('useStoreMap expects an array as keys'),'function'!=typeof n&&v('useStoreMap expects a function');let l=y.useCallback((e=>effector.createWatch({unit:s,fn:e,scope:r})),[s,r]),c=y.useCallback((()=>h(s,r)),[s,r]),i=y.useRef(),f=y.useRef(),p=y.useRef(u);return d.useSyncExternalStoreWithSelector(l,c,c,(e=>{if(i.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let r=1;for(let n=0;n<e.length;n++)if(e[n]!==t[n]){r=0;break}return r})(p.current,u)){let t=n(e,u);void 0===t&&void 0!==o&&(t=o),i.current=e,p.current=u,void 0!==t&&(f.current=t)}return f.current}),((e,t)=>!a(t,e)))}function s(e,t={},r){let{open:o,close:s,set:u}=n({open:e.open,close:e.close,set:e.set},r),a=y.useMemo((()=>({open:o,close:s,set:u})),[e,o]),l=y.useRef({value:null,count:0});m((()=>(a.open(l.current.value),()=>a.close(l.current.value))),[a]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return 0;for(let n=0;n<r.length;n++){let o=r[n];if(e[o]!==t[o])return 0}return 1}return 0})(l.current.value,t)||(l.current.value=t,l.current.count+=1),m((()=>{a.set(l.current.value)}),[l.current.count])}function u(e){let t=y.useContext(g);return e&&!t&&v('No scope found, consider adding <Provider> to app root'),t}function a(e,t){return r(e,u(null==t?void 0:t.forceScope))}function l(e,r){function n(e){let t=y.useRef(e),n=a(o);m((()=>(u({props:t.current,state:o.getState()}),()=>{l({props:t.current,state:o.getState()})})),[]);let s=r(e,n);return t.current=e,s}let o;k('createComponent','@effector/reflect'),effector.is.store(e)?o=e:'object'==typeof e&&null!==e?o=effector.combine(e):v('shape should be a store or object with stores');let s='Unknown';o&&o.shortName&&(s=o.shortName);let u=effector.createEvent(),l=effector.createEvent();return n.mounted=u,n.unmounted=l,t(`${s}.View`,n)}function c(e){let t=e[0];var r;(e=>{if(!e)throw Error('expect first argument be an object')})(j(r=t)||(e=>'function'==typeof e)(r));let n=t.or,o=t.and;if(o){let t=o[0];if(j(t)&&'and'in t){let t=c(o);e=t[0],n={...n,...t[1]}}else e=o}return[e,n]}function i(e,t){let r=t&&j(n=t[0])&&(n.and||n.or)?t:[{and:t}];var n;let o,[[s,u],a]=c(r),l={},i={},f=a;var p;return'string'==typeof s?(i={name:s},j(p=u)&&'sid'in p||(l=u||{})):(e=>j(e)&&('domain'in e||'defaultState'in e||'name'in e))(s)&&(i=s,l=s.defaultState||{},o=s.domain),{hook:e,domain:o,defaultState:l,mainConfig:i,maybeConfig:f}}Object.defineProperty(exports,'__esModule',{value:1});var f=require('react'),effector=require('effector'),p=require('use-sync-external-store/shim/index.js'),d=require('use-sync-external-store/shim/with-selector.js'),y=e(f);let v=e=>{throw Error(e)},m='undefined'!=typeof window?y.useLayoutEffect:y.useEffect,b=(e,t,r)=>{f.useEffect((()=>{e&&console.error(`${t} is deprecated${r?`, prefer ${r} instead`:''}`)}),[e,t,r])};const h=(e,t)=>t?t.getState(e):e.getState(),S=(e,t)=>e!==t,g=y.createContext(null);let{Provider:x}=g,k=(e,t)=>{console.error(`${e} is deprecated${t?`, use ${t} instead`:''}`)},j=e=>'object'==typeof e&&null!==e,$=(e,t={})=>(j(e)&&($(e.or,t),(e=>{for(let o in e)n=o,(e=>void 0===e)(r=e[o])||'or'===n||'and'===n||(t[n]=r);var r,n})(e),$(e.and,t)),t);exports.Provider=x,exports.connect=e=>(k('connect','useUnit'),r=>{let n=e;return'function'!=typeof e&&(n=r,r=e),t(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>y.createElement(n,{...e,...a(r)})))}),exports.createComponent=l,exports.createGate=(...e)=>(({domain:e,defaultState:r,hook:n,mainConfig:o,maybeConfig:s})=>{function a(e){return n(a,e,u()),null}let l=$({or:s,and:o}),c=`${e?`${e.compositeName.fullName}/`:''}${l.name||'gate'}`,i=effector.createEvent({name:`${c}.set`,sid:l.sid?`${l.sid}|set`:void 0}),f=effector.createEvent({name:`${c}.open`,sid:l.sid?`${l.sid}|open`:void 0}),p=effector.createEvent({name:`${c}.close`,sid:l.sid?`${l.sid}|close`:void 0}),d=effector.createStore(Boolean(0),{name:`${c}.status`,serialize:'ignore'}).on(f,(()=>Boolean(1))).on(p,(()=>Boolean(0))),y=effector.createStore(r,{name:`${c}.state`,sid:l.sid}).on(i,((e,t)=>t)).on(f,((e,t)=>t)).reset(p);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[d,y,f,p,i]})}return a.open=f,a.close=p,a.status=d,a.state=y,a.set=i,t(`Gate:${c}`,a)})(i(s,e)),exports.createStoreConsumer=e=>(k('createStoreConsumer','useUnit'),l(e,(({children:e},t)=>e(t)))),exports.useEvent=(e,t)=>((e,t)=>{if(b(1,'useEvent','useUnit'),!t)return e;let r=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return y.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=effector.scopeBind(e[n],{scope:t});return r}),[t,...Object.keys(r),...Object.values(r)])})(e,u(null==t?void 0:t.forceScope)),exports.useGate=(e,t={},r)=>s(e,t,u(null==r?void 0:r.forceScope)),exports.useList=(e,n,s)=>((e,n,s)=>{let u,a,l,c=[];'object'==typeof n&&null!==n?(n.keys&&(c=n.keys),({fn:u,getKey:a,placeholder:l}=n)):u=n,effector.is.store(e)||v('expect useList first argument to be a store'),'function'!=typeof u&&v("expect useList's renderItem to be a function"),Array.isArray(c)||v("expect useList's keys to be an array");let i=y.useMemo((()=>{let r=t(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:n,keyVal:u,value:a}=t;if(f.current[1])return f.current[0](a,u);let l=o([{store:e,keys:[r,...n],fn:(e,t)=>e[t[0]]}],s);return f.current[0](l,r)}));return y.memo(r)}),[e,s,!!a]),f=y.useRef([u,a]);f.current=[u,a];let p=y.useMemo((()=>c),c);if(a){let t=r(e,s);return 0===t.length&&l?l:t.map((e=>{let t=f.current[1](e);return y.createElement(i,{keyVal:t,key:t,keys:p,value:e})}))}{let t=o([{store:e,keys:[e],fn:e=>e.length}],s);return 0===t&&l?l:Array.from({length:t},((e,t)=>y.createElement(i,{index:t,key:t,keys:p})))}})(e,n,u(null==s?void 0:s.forceScope)),exports.useStore=a,exports.useStoreMap=(e,t)=>o([e,t],u(null==e?void 0:e.forceScope)),exports.useUnit=(e,t)=>n(e,u(null==t?void 0:t.forceScope));
//# sourceMappingURL=effector-react.cjs.js.map
import React from 'react'
import {Store, Event, Effect, Domain, Scope} from 'effector'
import {Store, Event, Effect, Domain, Scope, EventCallable} from 'effector'

@@ -21,2 +21,5 @@ export const Provider: React.Provider<Scope>

/**
* @deprecated use useUnit hook instead
*/
export function useStore<State>(

@@ -89,2 +92,5 @@ store: Store<State>,

/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, State>(

@@ -94,2 +100,5 @@ store: Store<State>,

): StoreView<State, Props>
/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, Shape extends object>(

@@ -107,10 +116,4 @@ store: Shape,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createContextComponent<Props, State, Context>(
store: Store<State>,
context: React.Context<Context>,
view: (props: Props, state: State, context: Context) => React.ReactNode,
): React.ComponentType<Props>
export function connect<

@@ -120,2 +123,5 @@ State extends object,

>(store: Store<State>): (Component: Com) => React.ComponentType<State>
/**
* @deprecated use useUnit hook instead
*/
export function connect<

@@ -126,2 +132,5 @@ State extends object,

/**
* @deprecated use useUnit hook instead
*/
export function createStoreConsumer<State>(

@@ -132,17 +141,18 @@ store: Store<State>,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createReactState<
State extends object,
Com extends React.ComponentType<any>,
>(store: Store<State>, Component: Com): React.ComponentType<State>
export function useEvent(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},
): (payload: T) => T
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<R>(

@@ -152,2 +162,5 @@ fx: Effect<void, R, any>,

): () => Promise<R>
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T, R>(

@@ -157,7 +170,7 @@ fx: Effect<T, R, any>,

): (payload: T) => Promise<R>
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>(
export function useEvent<List extends (EventCallable<any> | Effect<any, any>)[]>(
list: [...List],
opts?: {forceScope?: boolean},
): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -168,4 +181,7 @@ : List[Key] extends Effect<infer P, infer D, any>

}
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<
Shape extends Record<string, Event<any> | Effect<any, any, any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any>>,
>(

@@ -175,3 +191,3 @@ shape: Shape,

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -194,7 +210,7 @@ : Shape[Key] extends Effect<infer P, infer D, any>

export function useUnit(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
export function useUnit<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},

@@ -211,3 +227,3 @@ ): (payload: T) => T

export function useUnit<
List extends (Event<any> | Effect<any, any> | Store<any>)[],
List extends (EventCallable<any> | Effect<any, any> | Store<any>)[],
>(

@@ -217,3 +233,3 @@ list: [...List],

): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -231,3 +247,3 @@ ? () => void

export function useUnit<
Shape extends Record<string, Event<any> | Effect<any, any, any> | Store<any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any> | Store<any>>,
>(

@@ -237,3 +253,3 @@ shape: Shape | {'@@unitShape': () => Shape},

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -240,0 +256,0 @@ ? () => void

import React from 'react'
import {Store, Event, Effect, Domain, Scope} from 'effector'
import {Store, Event, Effect, Domain, Scope, EventCallable} from 'effector'

@@ -21,2 +21,5 @@ export const Provider: React.Provider<Scope>

/**
* @deprecated use useUnit hook instead
*/
export function useStore<State>(

@@ -89,2 +92,5 @@ store: Store<State>,

/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, State>(

@@ -94,2 +100,5 @@ store: Store<State>,

): StoreView<State, Props>
/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, Shape extends object>(

@@ -107,10 +116,4 @@ store: Shape,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createContextComponent<Props, State, Context>(
store: Store<State>,
context: React.Context<Context>,
view: (props: Props, state: State, context: Context) => React.ReactNode,
): React.ComponentType<Props>
export function connect<

@@ -120,2 +123,5 @@ State extends object,

>(store: Store<State>): (Component: Com) => React.ComponentType<State>
/**
* @deprecated use useUnit hook instead
*/
export function connect<

@@ -126,2 +132,5 @@ State extends object,

/**
* @deprecated use useUnit hook instead
*/
export function createStoreConsumer<State>(

@@ -132,17 +141,18 @@ store: Store<State>,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createReactState<
State extends object,
Com extends React.ComponentType<any>,
>(store: Store<State>, Component: Com): React.ComponentType<State>
export function useEvent(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},
): (payload: T) => T
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<R>(

@@ -152,2 +162,5 @@ fx: Effect<void, R, any>,

): () => Promise<R>
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T, R>(

@@ -157,7 +170,7 @@ fx: Effect<T, R, any>,

): (payload: T) => Promise<R>
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>(
export function useEvent<List extends (EventCallable<any> | Effect<any, any>)[]>(
list: [...List],
opts?: {forceScope?: boolean},
): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -168,4 +181,7 @@ : List[Key] extends Effect<infer P, infer D, any>

}
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<
Shape extends Record<string, Event<any> | Effect<any, any, any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any>>,
>(

@@ -175,3 +191,3 @@ shape: Shape,

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -194,7 +210,7 @@ : Shape[Key] extends Effect<infer P, infer D, any>

export function useUnit(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
export function useUnit<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},

@@ -211,3 +227,3 @@ ): (payload: T) => T

export function useUnit<
List extends (Event<any> | Effect<any, any> | Store<any>)[],
List extends (EventCallable<any> | Effect<any, any> | Store<any>)[],
>(

@@ -217,3 +233,3 @@ list: [...List],

): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -231,3 +247,3 @@ ? () => void

export function useUnit<
Shape extends Record<string, Event<any> | Effect<any, any, any> | Store<any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any> | Store<any>>,
>(

@@ -237,3 +253,3 @@ shape: Shape | {'@@unitShape': () => Shape},

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -240,0 +256,0 @@ ? () => void

@@ -1,2 +0,2 @@

((e,t)=>{'object'==typeof exports&&'undefined'!=typeof module?t(exports,require('react'),require('effector'),require('use-sync-external-store/shim/index.js'),require('use-sync-external-store/shim/with-selector.js')):'function'==typeof define&&define.amd?define(['exports','react','effector','use-sync-external-store/shim/index.js','use-sync-external-store/shim/with-selector.js'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).effectorReact={},e.React,e.effector,e.useSyncExternalStoreShim,e.useSyncExternalStoreWithSelectorShim)})(this,((e,t,effector,n,r)=>{function o(e){return e&&'object'==typeof e&&'default'in e?e:{default:e}}function u(e,t,n,r){let o=[effector.step.mov({store:e.stateRef,to:'stack'}),effector.step.run({fn:e=>t(e)})];if(r&&o.unshift(r),n){let t=effector.createNode({node:o,meta:{watchOp:"store"}}),r=e.graphite.id,u=n.additionalLinks,s=u[r]||[];return u[r]=s,s.push(t),()=>{let e=s.indexOf(t);-1!==e&&s.splice(e,1),effector.clearNode(t)}}{let t=effector.createNode({node:o,parent:[e],family:{owners:e}});return()=>{effector.clearNode(t)}}}function s(e,t){return t.displayName=e,t}function a(e,t){effector.is.store(e)||v('expect useStore argument to be a store');let r=h.default.useCallback((n=>u(e,n,t)),[e,t]),o=h.default.useCallback((()=>S(e,t)),[e,t]);return n.useSyncExternalStore(r,o,o)}function l(e,t){let r=effector.is.unit(e),o={};r?o={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?o=e['@@unitShape']():v('expect @@unitShape to be a function'):o=e;let s=Array.isArray(o),a=h.default.useRef({stale:1,justSubscribed:0,scope:t}),[l,i,c,f,d]=h.default.useMemo((()=>{a.current.stale=1;let e=Array.isArray(o)?[]:{},n=[],r=[],u=[],s=[];for(let a in o){let l=o[a];effector.is.unit(l)||v('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[a]=t?effector.scopeBind(l,{scope:t}):l,u.push(a),s.push(l)):(e[a]=null,n.push(a),r.push(l))}return[e,n,r,u,s]}),[a,t,...Object.keys(o),...Object.values(o)]),p=h.default.useRef({value:l,storeKeys:i,eventKeys:f,eventValues:d}),y=h.default.useCallback((e=>{let n=a.current;n.justSubscribed=1;let r=()=>{n.stale||(n.stale=1,e())},o=effector.step.compute({priority:'sampler',batch:1}),s=c.map((e=>u(e,r,t,o)));return()=>{s.forEach((e=>e()))}}),[c,t,p,a]),m=h.default.useCallback((()=>{let e,n=p.current,o=a.current,u=0,y=n.value,m=n.storeKeys,h=n.eventKeys,v=n.eventValues,b=t!==o.scope;if(o.stale||o.justSubscribed||b){u=!o.justSubscribed||b,e=s?[...l]:{...l},m.length===i.length&&h.length===f.length||(u=1);for(let n=0;n<i.length;n++){let r=S(c[n],t),o=i[n];u||(u=m.includes(o)?y[o]!==r:1),e[o]=r}for(let e=0;e<f.length;e++){let t=d[e],n=f[e];u||(u=h.includes(n)?v[h.indexOf(n)]!==t:1)}}return u&&(n.value=e),n.storeKeys=i,n.eventKeys=f,n.eventValues=d,o.stale=0,o.justSubscribed=!u,o.scope=t,r?n.value.unit:n.value}),[y,c,d,t,p,a]);return n.useSyncExternalStore(y,m,m)}function i([e,t],n){let o,s,a,l,i=g;t?(o=t,a=e,l=[]):({fn:o,store:a,keys:l,defaultValue:s,updateFilter:i=g}=e),effector.is.store(a)||v('useStoreMap expects a store'),Array.isArray(l)||v('useStoreMap expects an array as keys'),'function'!=typeof o&&v('useStoreMap expects a function');let c=h.default.useCallback((e=>u(a,e,n)),[a,n]),f=h.default.useCallback((()=>S(a,n)),[a,n]),d=h.default.useRef(),p=h.default.useRef(),y=h.default.useRef(l);return r.useSyncExternalStoreWithSelector(c,f,f,(e=>{if(d.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let n=1;for(let r=0;r<e.length;r++)if(e[r]!==t[r]){n=0;break}return n})(y.current,l)){let t=o(e,l);void 0===t&&void 0!==s&&(t=s),d.current=e,y.current=l,void 0!==t&&(p.current=t)}return p.current}),((e,t)=>!i(t,e)))}function c(e,t={},n){let{open:r,close:o,set:u}=l({open:e.open,close:e.close,set:e.set},n),s=h.default.useMemo((()=>({open:r,close:o,set:u})),[e,r]),a=h.default.useRef({value:null,count:0});b((()=>(s.open(a.current.value),()=>s.close(a.current.value))),[s]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return 0;for(let r=0;r<n.length;r++){let o=n[r];if(e[o]!==t[o])return 0}return 1}return 0})(a.current.value,t)||(a.current.value=t,a.current.count+=1),b((()=>{s.set(a.current.value)}),[a.current.count])}function f(e){let t=h.default.useContext(k);return e&&!t&&v('No scope found, consider adding <Provider> to app root'),t}function d(e,t){return a(e,f(null==t?void 0:t.forceScope))}function p(e,t){function n(e){let n=h.default.useRef(e),o=d(r);b((()=>(u({props:n.current,state:r.getState()}),()=>{a({props:n.current,state:r.getState()})})),[]);let s=t(e,o);return n.current=e,s}let r;effector.is.store(e)?r=e:'object'==typeof e&&null!==e?r=effector.combine(e):v('shape should be a store or object with stores');let o='Unknown';r&&r.shortName&&(o=r.shortName);let u=effector.createEvent(),a=effector.createEvent();return n.mounted=u,n.unmounted=a,s(`${o}.View`,n)}function y(e,t){let n=t?e:e[0];(e=>{(e=>{if(!e)throw Error('expect first argument be an object')})(E(e)||(e=>'function'==typeof e)(e))})(n);let r=n.or,o=n.and;if(o){let n=t?o:o[0];if(E(n)&&'and'in n){let n=y(o,t);e=n[0],r={...r,...n[1]}}else e=o}return[e,r]}function m(e,t){let n,r=t&&(e=>E(e)&&(e.and||e.or))(t[0])?t:[{and:t}],[[o,u],s]=y(r),a={},l={},i=s;return'string'==typeof o?(l={name:o},(e=>E(e)&&'sid'in e)(u)||(a=u||{})):(e=>E(e)&&('domain'in e||'defaultState'in e||'name'in e))(o)&&(l=o,a=o.defaultState||{},n=o.domain),{hook:e,domain:n,defaultState:a,mainConfig:l,maybeConfig:i}}var h=o(t);let v=e=>{throw Error(e)},b='undefined'!=typeof window?h.default.useLayoutEffect:h.default.useEffect;const S=(e,t)=>t?t.getState(e):e.getState(),g=(e,t)=>e!==t,k=h.default.createContext(null);let{Provider:x}=k,j=e=>console.error(`${e} is deprecated`),C=e=>t=>{let n=e;return'function'!=typeof e&&(n=t,t=e),s(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>h.default.createElement(n,{...e,...d(t)})))},E=e=>'object'==typeof e&&null!==e,$=(e,t={})=>(E(e)&&($(e.or,t),((e,t)=>{for(let n in e)t(e[n],n)})(e,((e,n)=>{(e=>void 0===e)(e)||'or'===n||'and'===n||(t[n]=e)})),$(e.and,t)),t);e.Provider=x,e.connect=C,e.createComponent=p,e.createContextComponent=(e,t,n)=>(j('createContextComponent'),s(`${e.shortName||'Unknown'}.ContextComponent`,(r=>{let o=h.default.useContext(t),u=d(e);return n(r,u,o)}))),e.createGate=(...e)=>(({domain:e,defaultState:t,hook:n,mainConfig:r,maybeConfig:o})=>{function u(e){return n(u,e,f()),null}let a=$({or:o,and:r}),l=`${e?`${e.compositeName.fullName}/`:''}${a.name||'gate'}`,i=effector.createEvent({name:`${l}.set`,sid:a.sid?`${a.sid}|set`:void 0}),c=effector.createEvent({name:`${l}.open`,sid:a.sid?`${a.sid}|open`:void 0}),d=effector.createEvent({name:`${l}.close`,sid:a.sid?`${a.sid}|close`:void 0}),p=effector.createStore(Boolean(0),{name:`${l}.status`,serialize:'ignore'}).on(c,(()=>Boolean(1))).on(d,(()=>Boolean(0))),y=effector.createStore(t,{name:`${l}.state`,sid:a.sid}).on(i,((e,t)=>t)).on(c,((e,t)=>t)).reset(d);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[p,y,c,d,i]})}return u.open=c,u.close=d,u.status=p,u.state=y,u.set=i,s(`Gate:${l}`,u)})(m(c,e)),e.createReactState=(e,t)=>(j('createReactState'),C(t)(e)),e.createStoreConsumer=e=>p(e,(({children:e},t)=>e(t))),e.useEvent=(e,t)=>((e,t)=>{if(!t)return e;let n=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return h.default.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=effector.scopeBind(e[r],{scope:t});return n}),[t,...Object.keys(n),...Object.values(n)])})(e,f(null==t?void 0:t.forceScope)),e.useGate=(e,t={},n)=>c(e,t,f(null==n?void 0:n.forceScope)),e.useList=(e,t,n)=>((e,t,n)=>{let r,o,u,l=[];'object'==typeof t&&null!==t?(t.keys&&(l=t.keys),({fn:r,getKey:o,placeholder:u}=t)):r=t,effector.is.store(e)||v('expect useList first argument to be a store'),'function'!=typeof r&&v("expect useList's renderItem to be a function"),Array.isArray(l)||v("expect useList's keys to be an array");let c=h.default.useMemo((()=>{let t=s(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:o,keyVal:u,value:s}=t;if(f.current[1])return f.current[0](s,u);let a=i([{store:e,keys:[r,...o],fn:(e,t)=>e[t[0]]}],n);return f.current[0](a,r)}));return h.default.memo(t)}),[e,n,!!o]),f=h.default.useRef([r,o]);f.current=[r,o];let d=h.default.useMemo((()=>l),l);if(o){let t=a(e,n);return 0===t.length&&u?u:t.map((e=>{let t=f.current[1](e);return h.default.createElement(c,{keyVal:t,key:t,keys:d,value:e})}))}{let t=i([{store:e,keys:[e],fn:e=>e.length}],n);return 0===t&&u?u:Array.from({length:t},((e,t)=>h.default.createElement(c,{index:t,key:t,keys:d})))}})(e,t,f(null==n?void 0:n.forceScope)),e.useStore=d,e.useStoreMap=(e,t)=>i([e,t],f(null==e?void 0:e.forceScope)),e.useUnit=(e,t)=>l(e,f(null==t?void 0:t.forceScope)),Object.defineProperty(e,'__esModule',{value:1})}));
((e,t)=>{'object'==typeof exports&&'undefined'!=typeof module?t(exports,require('react'),require('effector'),require('use-sync-external-store/shim/index.js'),require('use-sync-external-store/shim/with-selector.js')):'function'==typeof define&&define.amd?define(['exports','react','effector','use-sync-external-store/shim/index.js','use-sync-external-store/shim/with-selector.js'],t):t((e='undefined'!=typeof globalThis?globalThis:e||self).effectorReact={},e.React,e.effector,e.useSyncExternalStoreShim,e.useSyncExternalStoreWithSelectorShim)})(this,((e,t,effector,n,r)=>{function u(e){return e&&'object'==typeof e&&'default'in e?e:{default:e}}function o(e,t){return t.displayName=e,t}function s(e,t){b(1,'useStore','useUnit'),effector.is.store(e)||h('expect useStore argument to be a store');let r=m.default.useCallback((n=>effector.createWatch({unit:e,fn:n,scope:t})),[e,t]),u=m.default.useCallback((()=>S(e,t)),[e,t]);return n.useSyncExternalStore(r,u,u)}function a(e,t){let r=effector.is.unit(e),u={};r?u={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?u=e['@@unitShape']():h('expect @@unitShape to be a function'):u=e;let o=Array.isArray(u),s=m.default.useRef({stale:1,justSubscribed:0,scope:t}),[a,l,c,i,f]=m.default.useMemo((()=>{s.current.stale=1;let e=Array.isArray(u)?[]:{},n=[],r=[],o=[],a=[];for(let s in u){let l=u[s];effector.is.unit(l)||h('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[s]=t?effector.scopeBind(l,{scope:t}):l,o.push(s),a.push(l)):(e[s]=null,n.push(s),r.push(l))}return[e,n,r,o,a]}),[s,t,...Object.keys(u),...Object.values(u)]),d=m.default.useRef({value:a,storeKeys:l,eventKeys:i,eventValues:f}),p=m.default.useCallback((e=>{let n=s.current;return n.justSubscribed=1,effector.createWatch({unit:c,fn:()=>{n.stale||(n.stale=1,e())},scope:t,batch:1})}),[c,t,d,s]),y=m.default.useCallback((()=>{let e,n=d.current,u=s.current,p=0,y=n.value,m=n.storeKeys,h=n.eventKeys,v=n.eventValues,b=t!==u.scope;if(u.stale||u.justSubscribed||b){p=!u.justSubscribed||b,e=o?[...a]:{...a},m.length===l.length&&h.length===i.length||(p=1);for(let n=0;n<l.length;n++){let r=S(c[n],t),u=l[n];p||(p=m.includes(u)?y[u]!==r:1),e[u]=r}for(let e=0;e<i.length;e++){let t=f[e],n=i[e];p||(p=h.includes(n)?v[h.indexOf(n)]!==t:1)}}return p&&(n.value=e),n.storeKeys=l,n.eventKeys=i,n.eventValues=f,u.stale=0,u.justSubscribed=!p,u.scope=t,r?n.value.unit:n.value}),[p,c,f,t,d,s]);return n.useSyncExternalStore(p,y,y)}function l([e,t],n){let u,o,s,a,l=g;t?(u=t,s=e,a=[]):({fn:u,store:s,keys:a,defaultValue:o,updateFilter:l=g}=e),effector.is.store(s)||h('useStoreMap expects a store'),Array.isArray(a)||h('useStoreMap expects an array as keys'),'function'!=typeof u&&h('useStoreMap expects a function');let c=m.default.useCallback((e=>effector.createWatch({unit:s,fn:e,scope:n})),[s,n]),i=m.default.useCallback((()=>S(s,n)),[s,n]),f=m.default.useRef(),d=m.default.useRef(),p=m.default.useRef(a);return r.useSyncExternalStoreWithSelector(c,i,i,(e=>{if(f.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let n=1;for(let r=0;r<e.length;r++)if(e[r]!==t[r]){n=0;break}return n})(p.current,a)){let t=u(e,a);void 0===t&&void 0!==o&&(t=o),f.current=e,p.current=a,void 0!==t&&(d.current=t)}return d.current}),((e,t)=>!l(t,e)))}function c(e,t={},n){let{open:r,close:u,set:o}=a({open:e.open,close:e.close,set:e.set},n),s=m.default.useMemo((()=>({open:r,close:u,set:o})),[e,r]),l=m.default.useRef({value:null,count:0});v((()=>(s.open(l.current.value),()=>s.close(l.current.value))),[s]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return 0;for(let r=0;r<n.length;r++){let u=n[r];if(e[u]!==t[u])return 0}return 1}return 0})(l.current.value,t)||(l.current.value=t,l.current.count+=1),v((()=>{s.set(l.current.value)}),[l.current.count])}function i(e){let t=m.default.useContext(k);return e&&!t&&h('No scope found, consider adding <Provider> to app root'),t}function f(e,t){return s(e,i(null==t?void 0:t.forceScope))}function d(e,t){function n(e){let n=m.default.useRef(e),u=f(r);v((()=>(s({props:n.current,state:r.getState()}),()=>{a({props:n.current,state:r.getState()})})),[]);let o=t(e,u);return n.current=e,o}let r;j('createComponent','@effector/reflect'),effector.is.store(e)?r=e:'object'==typeof e&&null!==e?r=effector.combine(e):h('shape should be a store or object with stores');let u='Unknown';r&&r.shortName&&(u=r.shortName);let s=effector.createEvent(),a=effector.createEvent();return n.mounted=s,n.unmounted=a,o(`${u}.View`,n)}function p(e){let t=e[0];(e=>{(e=>{if(!e)throw Error('expect first argument be an object')})($(e)||(e=>'function'==typeof e)(e))})(t);let n=t.or,r=t.and;if(r){let t=r[0];if($(t)&&'and'in t){let t=p(r);e=t[0],n={...n,...t[1]}}else e=r}return[e,n]}function y(e,t){let n,r=t&&(e=>$(e)&&(e.and||e.or))(t[0])?t:[{and:t}],[[u,o],s]=p(r),a={},l={},c=s;return'string'==typeof u?(l={name:u},(e=>$(e)&&'sid'in e)(o)||(a=o||{})):(e=>$(e)&&('domain'in e||'defaultState'in e||'name'in e))(u)&&(l=u,a=u.defaultState||{},n=u.domain),{hook:e,domain:n,defaultState:a,mainConfig:l,maybeConfig:c}}var m=u(t);let h=e=>{throw Error(e)},v='undefined'!=typeof window?m.default.useLayoutEffect:m.default.useEffect,b=(e,n,r)=>{t.useEffect((()=>{e&&console.error(`${n} is deprecated${r?`, prefer ${r} instead`:''}`)}),[e,n,r])};const S=(e,t)=>t?t.getState(e):e.getState(),g=(e,t)=>e!==t,k=m.default.createContext(null);let{Provider:x}=k,j=(e,t)=>{console.error(`${e} is deprecated${t?`, use ${t} instead`:''}`)},$=e=>'object'==typeof e&&null!==e,E=(e,t={})=>($(e)&&(E(e.or,t),((e,t)=>{for(let n in e)t(e[n],n)})(e,((e,n)=>{(e=>void 0===e)(e)||'or'===n||'and'===n||(t[n]=e)})),E(e.and,t)),t);e.Provider=x,e.connect=e=>(j('connect','useUnit'),t=>{let n=e;return'function'!=typeof e&&(n=t,t=e),o(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>m.default.createElement(n,{...e,...f(t)})))}),e.createComponent=d,e.createGate=(...e)=>(({domain:e,defaultState:t,hook:n,mainConfig:r,maybeConfig:u})=>{function s(e){return n(s,e,i()),null}let a=E({or:u,and:r}),l=`${e?`${e.compositeName.fullName}/`:''}${a.name||'gate'}`,c=effector.createEvent({name:`${l}.set`,sid:a.sid?`${a.sid}|set`:void 0}),f=effector.createEvent({name:`${l}.open`,sid:a.sid?`${a.sid}|open`:void 0}),d=effector.createEvent({name:`${l}.close`,sid:a.sid?`${a.sid}|close`:void 0}),p=effector.createStore(Boolean(0),{name:`${l}.status`,serialize:'ignore'}).on(f,(()=>Boolean(1))).on(d,(()=>Boolean(0))),y=effector.createStore(t,{name:`${l}.state`,sid:a.sid}).on(c,((e,t)=>t)).on(f,((e,t)=>t)).reset(d);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[p,y,f,d,c]})}return s.open=f,s.close=d,s.status=p,s.state=y,s.set=c,o(`Gate:${l}`,s)})(y(c,e)),e.createStoreConsumer=e=>(j('createStoreConsumer','useUnit'),d(e,(({children:e},t)=>e(t)))),e.useEvent=(e,t)=>((e,t)=>{if(b(1,'useEvent','useUnit'),!t)return e;let n=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return m.default.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let n=Array.isArray(e)?[]:{};for(let r in e)n[r]=effector.scopeBind(e[r],{scope:t});return n}),[t,...Object.keys(n),...Object.values(n)])})(e,i(null==t?void 0:t.forceScope)),e.useGate=(e,t={},n)=>c(e,t,i(null==n?void 0:n.forceScope)),e.useList=(e,t,n)=>((e,t,n)=>{let r,u,a,c=[];'object'==typeof t&&null!==t?(t.keys&&(c=t.keys),({fn:r,getKey:u,placeholder:a}=t)):r=t,effector.is.store(e)||h('expect useList first argument to be a store'),'function'!=typeof r&&h("expect useList's renderItem to be a function"),Array.isArray(c)||h("expect useList's keys to be an array");let i=m.default.useMemo((()=>{let t=o(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:u,keyVal:o,value:s}=t;if(f.current[1])return f.current[0](s,o);let a=l([{store:e,keys:[r,...u],fn:(e,t)=>e[t[0]]}],n);return f.current[0](a,r)}));return m.default.memo(t)}),[e,n,!!u]),f=m.default.useRef([r,u]);f.current=[r,u];let d=m.default.useMemo((()=>c),c);if(u){let t=s(e,n);return 0===t.length&&a?a:t.map((e=>{let t=f.current[1](e);return m.default.createElement(i,{keyVal:t,key:t,keys:d,value:e})}))}{let t=l([{store:e,keys:[e],fn:e=>e.length}],n);return 0===t&&a?a:Array.from({length:t},((e,t)=>m.default.createElement(i,{index:t,key:t,keys:d})))}})(e,t,i(null==n?void 0:n.forceScope)),e.useStore=f,e.useStoreMap=(e,t)=>l([e,t],i(null==e?void 0:e.forceScope)),e.useUnit=(e,t)=>a(e,i(null==t?void 0:t.forceScope)),Object.defineProperty(e,'__esModule',{value:1})}));
//# sourceMappingURL=effector-react.umd.js.map
import React from 'react'
import {Store, Event, Effect, Domain, Scope} from 'effector'
import {Store, Event, Effect, Domain, Scope, EventCallable} from 'effector'

@@ -21,2 +21,5 @@ export const Provider: React.Provider<Scope>

/**
* @deprecated use useUnit hook instead
*/
export function useStore<State>(

@@ -89,2 +92,5 @@ store: Store<State>,

/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, State>(

@@ -94,2 +100,5 @@ store: Store<State>,

): StoreView<State, Props>
/**
* @deprecated use useUnit hook instead
*/
export function createComponent<Props, Shape extends object>(

@@ -107,10 +116,4 @@ store: Shape,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createContextComponent<Props, State, Context>(
store: Store<State>,
context: React.Context<Context>,
view: (props: Props, state: State, context: Context) => React.ReactNode,
): React.ComponentType<Props>
export function connect<

@@ -120,2 +123,5 @@ State extends object,

>(store: Store<State>): (Component: Com) => React.ComponentType<State>
/**
* @deprecated use useUnit hook instead
*/
export function connect<

@@ -126,2 +132,5 @@ State extends object,

/**
* @deprecated use useUnit hook instead
*/
export function createStoreConsumer<State>(

@@ -132,17 +141,18 @@ store: Store<State>,

/**
* @deprecated use useStore hook instead
* @deprecated use useUnit hook instead
*/
export function createReactState<
State extends object,
Com extends React.ComponentType<any>,
>(store: Store<State>, Component: Com): React.ComponentType<State>
export function useEvent(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},
): (payload: T) => T
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<R>(

@@ -152,2 +162,5 @@ fx: Effect<void, R, any>,

): () => Promise<R>
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<T, R>(

@@ -157,7 +170,7 @@ fx: Effect<T, R, any>,

): (payload: T) => Promise<R>
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>(
export function useEvent<List extends (EventCallable<any> | Effect<any, any>)[]>(
list: [...List],
opts?: {forceScope?: boolean},
): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -168,4 +181,7 @@ : List[Key] extends Effect<infer P, infer D, any>

}
/**
* @deprecated use useUnit hook instead
*/
export function useEvent<
Shape extends Record<string, Event<any> | Effect<any, any, any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any>>,
>(

@@ -175,3 +191,3 @@ shape: Shape,

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? (payload: T) => T

@@ -194,7 +210,7 @@ : Shape[Key] extends Effect<infer P, infer D, any>

export function useUnit(
event: Event<void>,
event: EventCallable<void>,
opts?: {forceScope?: boolean},
): () => void
export function useUnit<T>(
event: Event<T>,
event: EventCallable<T>,
opts?: {forceScope?: boolean},

@@ -211,3 +227,3 @@ ): (payload: T) => T

export function useUnit<
List extends (Event<any> | Effect<any, any> | Store<any>)[],
List extends (EventCallable<any> | Effect<any, any> | Store<any>)[],
>(

@@ -217,3 +233,3 @@ list: [...List],

): {
[Key in keyof List]: List[Key] extends Event<infer T>
[Key in keyof List]: List[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -231,3 +247,3 @@ ? () => void

export function useUnit<
Shape extends Record<string, Event<any> | Effect<any, any, any> | Store<any>>,
Shape extends Record<string, EventCallable<any> | Effect<any, any, any> | Store<any>>,
>(

@@ -237,3 +253,3 @@ shape: Shape | {'@@unitShape': () => Shape},

): {
[Key in keyof Shape]: Shape[Key] extends Event<infer T>
[Key in keyof Shape]: Shape[Key] extends EventCallable<infer T>
? Equal<T, void> extends true

@@ -240,0 +256,0 @@ ? () => void

{
"name": "effector-react",
"version": "22.5.4",
"version": "23.0.0-rc.1",
"description": "React bindings for effector",

@@ -31,8 +31,2 @@ "main": "effector-react.cjs.js",

},
"./ssr": {
"types": "./ssr.d.ts",
"import": "./ssr.mjs",
"require": "./ssr.js",
"default": "./ssr.mjs"
},
"./compat": {

@@ -63,3 +57,2 @@ "types": "./compat.d.ts",

"index.d.ts",
"index.js.flow",
"effector-react.mjs",

@@ -73,5 +66,2 @@ "effector-react.mjs.map",

"compat.js.map",
"effector-react.cjs.js.flow",
"effector-react.umd.js.flow",
"compat.js.flow",
"effector-react.cjs.d.ts",

@@ -85,8 +75,3 @@ "effector-react.mjs.d.ts",

"scope.mjs.map",
"ssr.js",
"ssr.js.map",
"ssr.mjs",
"ssr.mjs.map",
"scope.d.ts",
"ssr.d.ts"
"scope.d.ts"
],

@@ -93,0 +78,0 @@ "keywords": [

@@ -1,2 +0,2 @@

function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t,r,n){let o=[effector.step.mov({store:e.stateRef,to:'stack'}),effector.step.run({fn:e=>t(e)})];if(n&&o.unshift(n),r){let t=effector.createNode({node:o,meta:{watchOp:"store"}}),n=e.graphite.id,s=r.additionalLinks,u=s[n]||[];return s[n]=u,u.push(t),()=>{let e=u.indexOf(t);-1!==e&&u.splice(e,1),effector.clearNode(t)}}{let t=effector.createNode({node:o,parent:[e],family:{owners:e}});return()=>{effector.clearNode(t)}}}function r(e,t){return t.displayName=e,t}function n(e,r){effector.is.store(e)||m('expect useStore argument to be a store');let n=y.useCallback((n=>t(e,n,r)),[e,r]),o=y.useCallback((()=>h(e,r)),[e,r]);return p.useSyncExternalStore(n,o,o)}function o(e,r){let n=effector.is.unit(e),o={};n?o={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?o=e['@@unitShape']():m('expect @@unitShape to be a function'):o=e;let s=Array.isArray(o),u=y.useRef({stale:1,justSubscribed:0,scope:r}),[a,l,i,c,f]=y.useMemo((()=>{u.current.stale=1;let e=Array.isArray(o)?[]:{},t=[],n=[],s=[],a=[];for(let u in o){let l=o[u];effector.is.unit(l)||m('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[u]=r?effector.scopeBind(l,{scope:r}):l,s.push(u),a.push(l)):(e[u]=null,t.push(u),n.push(l))}return[e,t,n,s,a]}),[u,r,...Object.keys(o),...Object.values(o)]),d=y.useRef({value:a,storeKeys:l,eventKeys:c,eventValues:f}),v=y.useCallback((e=>{let n=u.current;n.justSubscribed=1;let o=()=>{n.stale||(n.stale=1,e())},s=effector.step.compute({priority:'sampler',batch:1}),a=i.map((e=>t(e,o,r,s)));return()=>{a.forEach((e=>e()))}}),[i,r,d,u]),b=y.useCallback((()=>{let e,t=d.current,o=u.current,p=0,y=t.value,m=t.storeKeys,v=t.eventKeys,b=t.eventValues,x=r!==o.scope;if(o.stale||o.justSubscribed||x){p=!o.justSubscribed||x,e=s?[...a]:{...a},m.length===l.length&&v.length===c.length||(p=1);for(let t=0;t<l.length;t++){let n=h(i[t],r),o=l[t];p||(p=m.includes(o)?y[o]!==n:1),e[o]=n}for(let e=0;e<c.length;e++){let t=f[e],r=c[e];p||(p=v.includes(r)?b[v.indexOf(r)]!==t:1)}}return p&&(t.value=e),t.storeKeys=l,t.eventKeys=c,t.eventValues=f,o.stale=0,o.justSubscribed=!p,o.scope=r,n?t.value.unit:t.value}),[v,i,f,r,d,u]);return p.useSyncExternalStore(v,b,b)}function s([e,r],n){let o,s,u,a,l=b;r?(o=r,u=e,a=[]):({fn:o,store:u,keys:a,defaultValue:s,updateFilter:l=b}=e),effector.is.store(u)||m('useStoreMap expects a store'),Array.isArray(a)||m('useStoreMap expects an array as keys'),'function'!=typeof o&&m('useStoreMap expects a function');let i=y.useCallback((e=>t(u,e,n)),[u,n]),c=y.useCallback((()=>h(u,n)),[u,n]),f=y.useRef(),p=y.useRef(),v=y.useRef(a);return d.useSyncExternalStoreWithSelector(i,c,c,(e=>{if(f.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let r=1;for(let n=0;n<e.length;n++)if(e[n]!==t[n]){r=0;break}return r})(v.current,a)){let t=o(e,a);void 0===t&&void 0!==s&&(t=s),f.current=e,v.current=a,void 0!==t&&(p.current=t)}return p.current}),((e,t)=>!l(t,e)))}function u(e,t={},r){let{open:n,close:s,set:u}=o({open:e.open,close:e.close,set:e.set},r),a=y.useMemo((()=>({open:n,close:s,set:u})),[e,n]),l=y.useRef({value:null,count:0});v((()=>(a.open(l.current.value),()=>a.close(l.current.value))),[a]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return 0;for(let n=0;n<r.length;n++){let o=r[n];if(e[o]!==t[o])return 0}return 1}return 0})(l.current.value,t)||(l.current.value=t,l.current.count+=1),v((()=>{a.set(l.current.value)}),[l.current.count])}function a(e){let t=y.useContext(x);return e&&!t&&m('No scope found, consider adding <Provider> to app root'),t}function l(e,t){let r=t?e:e[0];var n;(e=>{if(!e)throw Error('expect first argument be an object')})(S(n=r)||(e=>'function'==typeof e)(n));let o=r.or,s=r.and;if(s){let r=t?s:s[0];if(S(r)&&'and'in r){let r=l(s,t);e=r[0],o={...o,...r[1]}}else e=s}return[e,o]}function i(e,t){let r=t&&S(n=t[0])&&(n.and||n.or)?t:[{and:t}];var n;let o,[[s,u],a]=l(r),i={},c={},f=a;var p;return'string'==typeof s?(c={name:s},S(p=u)&&'sid'in p||(i=u||{})):(e=>S(e)&&('domain'in e||'defaultState'in e||'name'in e))(s)&&(c=s,i=s.defaultState||{},o=s.domain),{hook:e,domain:o,defaultState:i,mainConfig:c,maybeConfig:f}}function c(e){return n(e,a(1))}Object.defineProperty(exports,'__esModule',{value:1});var f=require('react'),effector=require('effector'),p=require('use-sync-external-store/shim/index.js'),d=require('use-sync-external-store/shim/with-selector.js'),y=e(f);let m=e=>{throw Error(e)},v='undefined'!=typeof window?y.useLayoutEffect:y.useEffect;const h=(e,t)=>t?t.getState(e):e.getState(),b=(e,t)=>e!==t,x=y.createContext(null);let{Provider:k}=x,S=e=>'object'==typeof e&&null!==e,g=(e,t={})=>(S(e)&&(g(e.or,t),(e=>{for(let o in e)n=o,(e=>void 0===e)(r=e[o])||'or'===n||'and'===n||(t[n]=r);var r,n})(e),g(e.and,t)),t),j=e=>console.error(`${e} is deprecated`),C=e=>t=>{let n=e;return'function'!=typeof e&&(n=t,t=e),r(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>y.createElement(n,{...e,...c(t)})))};exports.Provider=k,exports.connect=C,exports.createComponent=()=>m('not implemented'),exports.createContextComponent=(e,t,r)=>(j('createContextComponent'),n=>{let o=y.useContext(t),s=c(e);return r(n,s,o)}),exports.createGate=(...e)=>(({domain:e,defaultState:t,hook:n,mainConfig:o,maybeConfig:s})=>{function u(e){return n(u,e,a()),null}let l=g({or:s,and:o}),i=`${e?`${e.compositeName.fullName}/`:''}${l.name||'gate'}`,c=effector.createEvent({name:`${i}.set`,sid:l.sid?`${l.sid}|set`:void 0}),f=effector.createEvent({name:`${i}.open`,sid:l.sid?`${l.sid}|open`:void 0}),p=effector.createEvent({name:`${i}.close`,sid:l.sid?`${l.sid}|close`:void 0}),d=effector.createStore(Boolean(0),{name:`${i}.status`,serialize:'ignore'}).on(f,(()=>Boolean(1))).on(p,(()=>Boolean(0))),y=effector.createStore(t,{name:`${i}.state`,sid:l.sid}).on(c,((e,t)=>t)).on(f,((e,t)=>t)).reset(p);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[d,y,f,p,c]})}return u.open=f,u.close=p,u.status=d,u.state=y,u.set=c,r(`Gate:${i}`,u)})(i(u,e)),exports.createReactState=(e,t)=>(j('createReactState'),C(t)(e)),exports.createStoreConsumer=e=>t=>{let r=c(e);return t.children(r)},exports.useEvent=e=>((e,t)=>{if(!t)return e;let r=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return y.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=effector.scopeBind(e[n],{scope:t});return r}),[t,...Object.keys(r),...Object.values(r)])})(e,a(1)),exports.useGate=(e,t={})=>u(e,t,a(1)),exports.useList=(e,t)=>((e,t,o)=>{let u,a,l,i=[];'object'==typeof t&&null!==t?(t.keys&&(i=t.keys),({fn:u,getKey:a,placeholder:l}=t)):u=t,effector.is.store(e)||m('expect useList first argument to be a store'),'function'!=typeof u&&m("expect useList's renderItem to be a function"),Array.isArray(i)||m("expect useList's keys to be an array");let c=y.useMemo((()=>{let t=r(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:n,keyVal:u,value:a}=t;if(f.current[1])return f.current[0](a,u);let l=s([{store:e,keys:[r,...n],fn:(e,t)=>e[t[0]]}],o);return f.current[0](l,r)}));return y.memo(t)}),[e,o,!!a]),f=y.useRef([u,a]);f.current=[u,a];let p=y.useMemo((()=>i),i);if(a){let t=n(e,o);return 0===t.length&&l?l:t.map((e=>{let t=f.current[1](e);return y.createElement(c,{keyVal:t,key:t,keys:p,value:e})}))}{let t=s([{store:e,keys:[e],fn:e=>e.length}],o);return 0===t&&l?l:Array.from({length:t},((e,t)=>y.createElement(c,{index:t,key:t,keys:p})))}})(e,t,a(1)),exports.useStore=c,exports.useStoreMap=(e,t)=>{let r=a(1);return s(t?[e,t]:[{store:e.store,keys:e.keys,fn:e.fn,updateFilter:e.updateFilter}],r)},exports.useUnit=e=>o(e,a(1));
function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e,t){return t.displayName=e,t}function r(e,t){v(1,'useStore','useUnit'),effector.is.store(e)||y('expect useStore argument to be a store');let r=d.useCallback((r=>effector.createWatch({unit:e,fn:r,scope:t})),[e,t]),n=d.useCallback((()=>b(e,t)),[e,t]);return f.useSyncExternalStore(r,n,n)}function n(e,t){let r=effector.is.unit(e),n={};r?n={unit:e}:'@@unitShape'in e?'function'==typeof e['@@unitShape']?n=e['@@unitShape']():y('expect @@unitShape to be a function'):n=e;let s=Array.isArray(n),o=d.useRef({stale:1,justSubscribed:0,scope:t}),[u,a,l,i,c]=d.useMemo((()=>{o.current.stale=1;let e=Array.isArray(n)?[]:{},r=[],s=[],u=[],a=[];for(let o in n){let l=n[o];effector.is.unit(l)||y('expect useUnit argument to be a unit'),effector.is.event(l)||effector.is.effect(l)?(e[o]=t?effector.scopeBind(l,{scope:t}):l,u.push(o),a.push(l)):(e[o]=null,r.push(o),s.push(l))}return[e,r,s,u,a]}),[o,t,...Object.keys(n),...Object.values(n)]),p=d.useRef({value:u,storeKeys:a,eventKeys:i,eventValues:c}),m=d.useCallback((e=>{let r=o.current;return r.justSubscribed=1,effector.createWatch({unit:l,fn:()=>{r.stale||(r.stale=1,e())},scope:t,batch:1})}),[l,t,p,o]),v=d.useCallback((()=>{let e,n=p.current,f=o.current,d=0,y=n.value,m=n.storeKeys,v=n.eventKeys,h=n.eventValues,x=t!==f.scope;if(f.stale||f.justSubscribed||x){d=!f.justSubscribed||x,e=s?[...u]:{...u},m.length===a.length&&v.length===i.length||(d=1);for(let r=0;r<a.length;r++){let n=b(l[r],t),s=a[r];d||(d=m.includes(s)?y[s]!==n:1),e[s]=n}for(let e=0;e<i.length;e++){let t=c[e],r=i[e];d||(d=v.includes(r)?h[v.indexOf(r)]!==t:1)}}return d&&(n.value=e),n.storeKeys=a,n.eventKeys=i,n.eventValues=c,f.stale=0,f.justSubscribed=!d,f.scope=t,r?n.value.unit:n.value}),[m,l,c,t,p,o]);return f.useSyncExternalStore(m,v,v)}function s([e,t],r){let n,s,o,u,a=h;t?(n=t,o=e,u=[]):({fn:n,store:o,keys:u,defaultValue:s,updateFilter:a=h}=e),effector.is.store(o)||y('useStoreMap expects a store'),Array.isArray(u)||y('useStoreMap expects an array as keys'),'function'!=typeof n&&y('useStoreMap expects a function');let l=d.useCallback((e=>effector.createWatch({unit:o,fn:e,scope:r})),[o,r]),i=d.useCallback((()=>b(o,r)),[o,r]),c=d.useRef(),f=d.useRef(),m=d.useRef(u);return p.useSyncExternalStoreWithSelector(l,i,i,(e=>{if(c.current!==e||!((e,t)=>{if(!e||!t||e.length!==t.length)return 0;let r=1;for(let n=0;n<e.length;n++)if(e[n]!==t[n]){r=0;break}return r})(m.current,u)){let t=n(e,u);void 0===t&&void 0!==s&&(t=s),c.current=e,m.current=u,void 0!==t&&(f.current=t)}return f.current}),((e,t)=>!a(t,e)))}function o(e,t={},r){let{open:s,close:o,set:u}=n({open:e.open,close:e.close,set:e.set},r),a=d.useMemo((()=>({open:s,close:o,set:u})),[e,s]),l=d.useRef({value:null,count:0});m((()=>(a.open(l.current.value),()=>a.close(l.current.value))),[a]),((e,t)=>{if(e===t)return 1;if('object'==typeof e&&null!==e&&'object'==typeof t&&null!==t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return 0;for(let n=0;n<r.length;n++){let s=r[n];if(e[s]!==t[s])return 0}return 1}return 0})(l.current.value,t)||(l.current.value=t,l.current.count+=1),m((()=>{a.set(l.current.value)}),[l.current.count])}function u(e){let t=d.useContext(x);return e&&!t&&y('No scope found, consider adding <Provider> to app root'),t}function a(e){let t=e[0];var r;(e=>{if(!e)throw Error('expect first argument be an object')})(k(r=t)||(e=>'function'==typeof e)(r));let n=t.or,s=t.and;if(s){let t=s[0];if(k(t)&&'and'in t){let t=a(s);e=t[0],n={...n,...t[1]}}else e=s}return[e,n]}function l(e,t){let r=t&&k(n=t[0])&&(n.and||n.or)?t:[{and:t}];var n;let s,[[o,u],l]=a(r),i={},c={},f=l;var p;return'string'==typeof o?(c={name:o},k(p=u)&&'sid'in p||(i=u||{})):(e=>k(e)&&('domain'in e||'defaultState'in e||'name'in e))(o)&&(c=o,i=o.defaultState||{},s=o.domain),{hook:e,domain:s,defaultState:i,mainConfig:c,maybeConfig:f}}function i(e){return r(e,u(1))}Object.defineProperty(exports,'__esModule',{value:1});var c=require('react'),effector=require('effector'),f=require('use-sync-external-store/shim/index.js'),p=require('use-sync-external-store/shim/with-selector.js'),d=e(c);let y=e=>{throw Error(e)},m='undefined'!=typeof window?d.useLayoutEffect:d.useEffect,v=(e,t,r)=>{c.useEffect((()=>{e&&console.error(`${t} is deprecated${r?`, prefer ${r} instead`:''}`)}),[e,t,r])};const b=(e,t)=>t?t.getState(e):e.getState(),h=(e,t)=>e!==t,x=d.createContext(null);let{Provider:S}=x,k=e=>'object'==typeof e&&null!==e,g=(e,t={})=>(k(e)&&(g(e.or,t),(e=>{for(let s in e)n=s,(e=>void 0===e)(r=e[s])||'or'===n||'and'===n||(t[n]=r);var r,n})(e),g(e.and,t)),t),j=(e,t)=>{console.error(`${e} is deprecated${t?`, use ${t} instead`:''}`)};console.error('`effector-react/scope` is deprecated. Use `effector-react` directly instead'),exports.Provider=S,exports.connect=e=>(j('connect','useUnit'),r=>{let n=e;return'function'!=typeof e&&(n=r,r=e),t(`Connect(${n.displayName||n.name||'Unknown'})`,(e=>d.createElement(n,{...e,...i(r)})))}),exports.createComponent=()=>y('not implemented'),exports.createGate=(...e)=>(({domain:e,defaultState:r,hook:n,mainConfig:s,maybeConfig:o})=>{function a(e){return n(a,e,u()),null}let l=g({or:o,and:s}),i=`${e?`${e.compositeName.fullName}/`:''}${l.name||'gate'}`,c=effector.createEvent({name:`${i}.set`,sid:l.sid?`${l.sid}|set`:void 0}),f=effector.createEvent({name:`${i}.open`,sid:l.sid?`${l.sid}|open`:void 0}),p=effector.createEvent({name:`${i}.close`,sid:l.sid?`${l.sid}|close`:void 0}),d=effector.createStore(Boolean(0),{name:`${i}.status`,serialize:'ignore'}).on(f,(()=>Boolean(1))).on(p,(()=>Boolean(0))),y=effector.createStore(r,{name:`${i}.state`,sid:l.sid}).on(c,((e,t)=>t)).on(f,((e,t)=>t)).reset(p);if(e){let{hooks:t}=e;effector.launch({target:[t.store,t.store,t.event,t.event,t.event],params:[d,y,f,p,c]})}return a.open=f,a.close=p,a.status=d,a.state=y,a.set=c,t(`Gate:${i}`,a)})(l(o,e)),exports.createStoreConsumer=e=>(j('createStoreConsumer','useUnit'),t=>{let r=i(e);return t.children(r)}),exports.useEvent=e=>((e,t)=>{if(v(1,'useEvent','useUnit'),!t)return e;let r=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return d.useMemo((()=>{if(effector.is.unit(e))return effector.scopeBind(e,{scope:t});let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=effector.scopeBind(e[n],{scope:t});return r}),[t,...Object.keys(r),...Object.values(r)])})(e,u(1)),exports.useGate=(e,t={})=>o(e,t,u(1)),exports.useList=(e,n)=>((e,n,o)=>{let u,a,l,i=[];'object'==typeof n&&null!==n?(n.keys&&(i=n.keys),({fn:u,getKey:a,placeholder:l}=n)):u=n,effector.is.store(e)||y('expect useList first argument to be a store'),'function'!=typeof u&&y("expect useList's renderItem to be a function"),Array.isArray(i)||y("expect useList's keys to be an array");let c=d.useMemo((()=>{let r=t(`${e.shortName||'Unknown'}.Item`,(t=>{let{index:r,keys:n,keyVal:u,value:a}=t;if(f.current[1])return f.current[0](a,u);let l=s([{store:e,keys:[r,...n],fn:(e,t)=>e[t[0]]}],o);return f.current[0](l,r)}));return d.memo(r)}),[e,o,!!a]),f=d.useRef([u,a]);f.current=[u,a];let p=d.useMemo((()=>i),i);if(a){let t=r(e,o);return 0===t.length&&l?l:t.map((e=>{let t=f.current[1](e);return d.createElement(c,{keyVal:t,key:t,keys:p,value:e})}))}{let t=s([{store:e,keys:[e],fn:e=>e.length}],o);return 0===t&&l?l:Array.from({length:t},((e,t)=>d.createElement(c,{index:t,key:t,keys:p})))}})(e,n,u(1)),exports.useStore=i,exports.useStoreMap=(e,t)=>{let r=u(1);return s(t?[e,t]:[{store:e.store,keys:e.keys,fn:e.fn,updateFilter:e.updateFilter}],r)},exports.useUnit=e=>n(e,u(1));
//# sourceMappingURL=scope.js.map

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc