effector-react
Advanced tools
Comparing version 21.0.8 to 21.1.0
@@ -95,1 +95,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
@@ -95,1 +95,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
@@ -95,1 +95,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
@@ -95,1 +95,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
@@ -95,1 +95,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
{ | ||
"name": "effector-react", | ||
"version": "21.0.8", | ||
"version": "21.1.0", | ||
"description": "React bindings for effector", | ||
@@ -84,3 +84,13 @@ "main": "effector-react.cjs.js", | ||
"access": "public" | ||
} | ||
}, | ||
"funding": [ | ||
{ | ||
"type": "patreon", | ||
"url": "https://www.patreon.com/zero_bias" | ||
}, | ||
{ | ||
"type": "opencollective", | ||
"url": "https://opencollective.com/effector" | ||
} | ||
] | ||
} |
@@ -1,2 +0,2 @@ | ||
# Effector-react | ||
# effector-react | ||
@@ -3,0 +3,0 @@ React bindings for [effector](https://www.npmjs.com/package/effector) |
20
ssr.d.ts
@@ -17,1 +17,21 @@ import * as React from 'react' | ||
): (payload: T) => Promise<R> | ||
export function useEvent<List extends (Event<any> | Effect<any, any>)[]>( | ||
list: [...List], | ||
): { | ||
[Key in keyof List]: List[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: List[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} | ||
export function useEvent< | ||
Shape extends Record<string, Event<any> | Effect<any, any, any>> | ||
>( | ||
shape: Shape, | ||
): { | ||
[Key in keyof Shape]: Shape[Key] extends Event<infer T> | ||
? (payload: T) => T | ||
: Shape[Key] extends Effect<infer P, infer D, any> | ||
? (payload: P) => Promise<D> | ||
: never | ||
} |
@@ -1,2 +0,2 @@ | ||
function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e){effector.is.store(e)||i('expect useStore argument to be a store');let t=f.useRef(e),r=f.useState(e.getState())[1];return l((()=>(t.current===e&&r(e.getState()),t.current=e,e.updates.watch(r))),[e]),e.getState()}function r({store:e,keys:r,fn:n}){effector.is.store(e)||i('useStoreMap expects a store'),Array.isArray(r)||i('useStoreMap expects an array as keys'),'function'!=typeof n&&i('useStoreMap expects a function');let o=f.useMemo((()=>effector.createStore(n(e.getState(),r)).on(e,((e,t)=>n(t,r)))),r),s=t(o);return l((()=>()=>{o.off(e),effector.clearNode(o,{deep:1})}),r),s}function n(e,t){return t.displayName=e,t}function o(e){let t=f.useContext(p);if(!t)throw Error('No scope found, consider adding <Provider> to app root');return t.find(e).meta.wrapped}function s(e,t){return n(`Connect(${t.displayName||t.name||'Unknown'})`,(r=>f.createElement(t,Object.assign({},r,u(e)))))}function u(e){return t(o(e))}function a(e){let t=f.useContext(p),r=t.find(e),n=effector.is.effect(e)?e=>{let n=(()=>{let e={};return e.req=new Promise(((t,r)=>{e.rs=t,e.rj=r})),e})();return effector.launch({target:r,params:{params:e,req:n},forkPage:t}),n.req}:e=>(effector.launch({target:r,params:e,forkPage:t}),e);return f.useCallback(n,[t,e])}Object.defineProperty(exports,'__esModule',{value:1});var c=require('react'),effector=require('effector'),f=e(c);let l='undefined'!=typeof window?f.useLayoutEffect:f.useEffect,i=e=>{throw Error(e)};const p=f.createContext(null);let{Provider:y}=p;exports.Provider=y,exports.connect=e=>t=>s(t,e),exports.createComponent=()=>{throw new Error('not implemented')},exports.createContextComponent=(e,t,r)=>n=>{let o=f.useContext(t),s=u(e);return r(n,s,o)},exports.createReactState=s,exports.createStoreConsumer=e=>t=>{let r=u(e);return t.children(r)},exports.useEvent=a,exports.useGate=(e,t={})=>{let r=a(e.open),n=a(e.close),o=a(e.set);((e,t={})=>{let r=f.useRef(null);l((()=>(e.open(r.current),()=>e.close(r.current))),[e]),((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})(r.current,t)||(r.current=t,e.set(t))})(f.useMemo((()=>({open:r,close:n,set:o})),[e,r]),t)},exports.useList=(e,t)=>((e,t)=>{let o,s=[];'object'==typeof t&&null!==t?(t.keys&&(s=t.keys),o=t.fn):o=t,effector.is.store(e)||i('expect useList first argument to be a store'),'function'!=typeof o&&i("expect useList's renderItem to be a function"),Array.isArray(s)||i("expect useList's keys to be an array");let u=f.useMemo((()=>{let t=n((e.shortName||'Unknown')+".Item",(({index:t,keys:n})=>{let o=r({store:e,keys:[t,...n],fn:(e,t)=>e[t[0]]});return c.current(o,t)}));return f.memo(t)}),[e]),a=r({store:e,keys:[e],fn:e=>e.length}),c=f.useRef(o);c.current=o;let l=f.useMemo((()=>s),s);return Array.from({length:a},((e,t)=>f.createElement(u,{index:t,key:t,keys:l})))})(o(e),t),exports.useStore=u,exports.useStoreMap=({store:e,keys:t,fn:n})=>r({store:o(e),keys:t,fn:n}); | ||
function e(e){return e&&'object'==typeof e&&'default'in e?e.default:e}function t(e){effector.is.store(e)||p('expect useStore argument to be a store');let t=i.useRef(e),r=i.useState(e.getState())[1];return l((()=>(t.current===e&&r(e.getState()),t.current=e,e.updates.watch(r))),[e]),e.getState()}function r({store:e,keys:r,fn:n}){effector.is.store(e)||p('useStoreMap expects a store'),Array.isArray(r)||p('useStoreMap expects an array as keys'),'function'!=typeof n&&p('useStoreMap expects a function');let o=i.useMemo((()=>effector.createStore(n(e.getState(),r)).on(e,((e,t)=>n(t,r)))),r),s=t(o);return l((()=>()=>{o.off(e),effector.clearNode(o,{deep:1})}),r),s}function n(e,t){return t.displayName=e,t}function o(e){let t=i.useContext(y);if(!t)throw Error('No scope found, consider adding <Provider> to app root');return t.find(e).meta.wrapped}function s(e,t){return n(`Connect(${t.displayName||t.name||'Unknown'})`,(r=>i.createElement(t,Object.assign({},r,u(e)))))}function u(e){return t(o(e))}function a(e,t){let r=t.find(e);return effector.is.effect(e)?e=>{let n=(()=>{let e={};return e.req=new Promise(((t,r)=>{e.rs=t,e.rj=r})),e})();return effector.launch({target:r,params:{params:e,req:n},forkPage:t}),n.req}:e=>(effector.launch({target:r,params:e,forkPage:t}),e)}function c(e){let t=i.useContext(y),r=effector.is.unit(e)||'object'!=typeof e?{event:e}:e;return i.useMemo((()=>{if(effector.is.unit(e))return a(e,t);let r=Array.isArray(e)?[]:{};for(let n in e)r[n]=a(e[n],t);return r}),[t,...Object.keys(r),...Object.values(r)])}Object.defineProperty(exports,'__esModule',{value:1});var f=require('react'),effector=require('effector'),i=e(f);let l='undefined'!=typeof window?i.useLayoutEffect:i.useEffect,p=e=>{throw Error(e)};const y=i.createContext(null);let{Provider:m}=y;exports.Provider=m,exports.connect=e=>t=>s(t,e),exports.createComponent=()=>{throw new Error('not implemented')},exports.createContextComponent=(e,t,r)=>n=>{let o=i.useContext(t),s=u(e);return r(n,s,o)},exports.createReactState=s,exports.createStoreConsumer=e=>t=>{let r=u(e);return t.children(r)},exports.useEvent=c,exports.useGate=(e,t={})=>{let r=c(e.open),n=c(e.close),o=c(e.set);((e,t={})=>{let r=i.useRef(null);l((()=>(e.open(r.current),()=>e.close(r.current))),[e]),((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})(r.current,t)||(r.current=t,e.set(t))})(i.useMemo((()=>({open:r,close:n,set:o})),[e,r]),t)},exports.useList=(e,t)=>((e,t)=>{let o,s=[];'object'==typeof t&&null!==t?(t.keys&&(s=t.keys),o=t.fn):o=t,effector.is.store(e)||p('expect useList first argument to be a store'),'function'!=typeof o&&p("expect useList's renderItem to be a function"),Array.isArray(s)||p("expect useList's keys to be an array");let u=i.useMemo((()=>{let t=n((e.shortName||'Unknown')+".Item",(({index:t,keys:n})=>{let o=r({store:e,keys:[t,...n],fn:(e,t)=>e[t[0]]});return c.current(o,t)}));return i.memo(t)}),[e]),a=r({store:e,keys:[e],fn:e=>e.length}),c=i.useRef(o);c.current=o;let f=i.useMemo((()=>s),s);return Array.from({length:a},((e,t)=>i.createElement(u,{index:t,key:t,keys:f})))})(o(e),t),exports.useStore=u,exports.useStoreMap=({store:e,keys:t,fn:n})=>r({store:o(e),keys:t,fn:n}); | ||
//# sourceMappingURL=ssr.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
143894
635