react-hooks-global-states 10.0.3 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/createContext.d.ts +11 -5
- package/createContext.js +1 -1
- package/package.json +1 -1
package/createContext.d.ts
CHANGED
|
@@ -9,9 +9,12 @@ export type Context<State, Actions, Metadata extends BaseMetadata | unknown> = {
|
|
|
9
9
|
};
|
|
10
10
|
export type ContextProvider<State, Actions, Metadata extends BaseMetadata | unknown> = React.FC<PropsWithChildren<{
|
|
11
11
|
value?: State | ((initialValue: State) => State);
|
|
12
|
-
__onCreate?: (context: Context<State, Actions, Metadata>) => void;
|
|
13
|
-
}>> & {
|
|
14
12
|
/**
|
|
13
|
+
* Callback called when the context is created.
|
|
14
|
+
*/
|
|
15
|
+
onCreated?: (context: Context<State, Actions, Metadata>) => void;
|
|
16
|
+
}>> & {
|
|
17
|
+
/**F
|
|
15
18
|
* Creates a provider wrapper which allows to capture the context value,
|
|
16
19
|
* useful for testing purposes.
|
|
17
20
|
*/
|
|
@@ -23,9 +26,12 @@ export type ContextProvider<State, Actions, Metadata extends BaseMetadata | unkn
|
|
|
23
26
|
value?: State | ((initialValue: State) => State);
|
|
24
27
|
}>>;
|
|
25
28
|
/**
|
|
26
|
-
* Returns the
|
|
29
|
+
* Returns access to the created context
|
|
30
|
+
* context.current will hold the context value
|
|
27
31
|
*/
|
|
28
|
-
|
|
32
|
+
context: {
|
|
33
|
+
current: Context<State, Actions, Metadata>;
|
|
34
|
+
};
|
|
29
35
|
};
|
|
30
36
|
};
|
|
31
37
|
export type StateControlsHook<State, StateMutator, Metadata extends BaseMetadata | unknown> = () => Readonly<[
|
|
@@ -94,5 +100,5 @@ export interface CreateContext {
|
|
|
94
100
|
];
|
|
95
101
|
}
|
|
96
102
|
export declare const createContext: CreateContext;
|
|
97
|
-
export type InferContextType<Provider extends ContextProvider<any, any, any>> = ReturnType<
|
|
103
|
+
export type InferContextType<Provider extends ContextProvider<any, any, any>> = ReturnType<Provider['makeProviderWrapper']>['context']['current'];
|
|
98
104
|
export default createContext;
|
package/createContext.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,t;e=this,t=(e,t,r,o)=>(()=>{"use strict";var n={155:t=>{t.exports=e},506:e=>{e.exports=t},639:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=void 0;var o=r(155),n=r(778),a=r(506),i=r(773);t.createContext=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.createContext)(null),u=function(u){var s=u.children,l=u.value,c=u.
|
|
1
|
+
var e,t;e=this,t=(e,t,r,o)=>(()=>{"use strict";var n={155:t=>{t.exports=e},506:e=>{e.exports=t},639:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.createContext=void 0;var o=r(155),n=r(778),a=r(506),i=r(773);t.createContext=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.createContext)(null),u=function(u){var s=u.children,l=u.value,c=u.onCreated,f=(0,o.useMemo)((function(){var r,o=function(){return(0,a.isFunction)(e)?e():e},u=(0,i.isNil)(l)?o():(0,a.isFunction)(l)?l(o()):l,s=new n.GlobalStore(u,Object.assign(Object.assign({},t),{metadata:null!==(r=(0,a.isFunction)(t.metadata)?t.metadata():t.metadata)&&void 0!==r?r:{}})),c=s.getHook();return{store:s,parentHook:c}}),[]),v=f.store,d=f.parentHook;return(0,o.useEffect)((function(){return function(){var e,t,r,o;null===(t=null===(e=v.callbacks)||void 0===e?void 0:e.onUnMount)||void 0===t||t.call(e),null===(o=(r=v).__onUnMountContext)||void 0===o||o.call(r,v,d),v.dispose()}}),[v,d]),null==c||c(v.getConfigCallbackParam()),(0,o.createElement)(r.Provider,{value:d},s)},s=function(){var e=(0,o.useContext)(r);if(!e)throw new Error("ContextHook must be used within a ContextProvider");return e.apply(void 0,arguments)};s.createSelectorHook=function(e,t){return function(){var n=(0,o.useContext)(r);if((0,i.isNil)(n))throw new Error("SelectorHook must be used within a ContextProvider");var a=(0,o.useRef)(e);a.current=e;var u=(0,o.useMemo)((function(){return(0,i.isNil)(e)?n:n.createSelectorHook((function(){return a.current.apply(a,arguments)}),t)}),[n]);return(0,o.useEffect)((function(){return function(){null==u||u.dispose()}}),[u]),u.apply(void 0,arguments)}};var l=function(){var e=(0,o.useContext)(r);if((0,i.isNil)(e))throw new Error("useStateControls must be used within a ContextProvider");return e.stateControls()},c=function(e,t){var n=(0,o.useContext)(r);if((0,i.isNil)(n))throw new Error("useObservableBuilder must be used within a ContextProvider");return n.createObservable(e,t)};return s.stateControls=function(){return[l,c]},u.makeProviderWrapper=function(e){var t={current:void 0};return{wrapper:function(r){var n=r.children;return(0,o.createElement)(u,{value:null==e?void 0:e.value,onCreated:function(r){var o;t.current=r,null===(o=null==e?void 0:e.onCreated)||void 0===o||o.call(e,r)}},n)},context:t}},[s,u,r]},t.default=t.createContext},773:e=>{e.exports=r},778:e=>{e.exports=o}},a={};return function e(t){var r=a[t];if(void 0!==r)return r.exports;var o=a[t]={exports:{}};return n[t](o,o.exports,e),o.exports}(639)})(),"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("json-storage-formatter/isFunction"),require("json-storage-formatter/isNil"),require("./GlobalStore.js")):"function"==typeof define&&define.amd?define(["react","json-storage-formatter/isFunction","json-storage-formatter/isNil","./GlobalStore.js"],t):"object"==typeof exports?exports["react-hooks-global-states"]=t(require("react"),require("json-storage-formatter/isFunction"),require("json-storage-formatter/isNil"),require("./GlobalStore.js")):e["react-hooks-global-states"]=t(e.react,e["json-storage-formatter/isFunction"],e["json-storage-formatter/isNil"],e["./GlobalStore.js"]);
|
package/package.json
CHANGED