react-hooks-global-states
Version:
This is a package to easily handling global-state across your react-components using hooks.
1 lines • 3.06 kB
JavaScript
var e,t;e=this,t=(e,t,r,o,n)=>(()=>{"use strict";var a={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),s=r(923);t.createContext=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.createContext)(null),u=function(){var e=(0,o.useContext)(r);if(!e)throw new Error("ContextHook must be used within a ContextProvider");return e()};u.createSelectorHook=function(e,t){var n=null,a=new WeakRef({});return function(){var s=(0,o.useContext)(r);if((0,i.isNil)(s))throw new Error("SelectorHook must be used within a ContextProvider");return(null==a?void 0:a.deref())!==s&&(null==n||n.dispose(),n=null,a=new WeakRef(s)),(0,i.isNil)(n)&&(n=s.createSelectorHook(e,t)),n.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 u.stateControls=function(){return[l,c]},[u,function(u){var l=u.children,c=u.value,f=u.ref,d=(0,s.useStableState)((function(){var r,o=function(){return(0,a.isFunction)(e)?e():e},s=(0,i.isNil)(c)?o():(0,a.isFunction)(c)?c(o()):c,u=new n.GlobalStore(s,Object.assign(Object.assign({},t),{metadata:null!==(r=(0,a.isFunction)(t.metadata)?t.metadata():t.metadata)&&void 0!==r?r:{}})),l=u.getHook();return[{store:u,parentHook:l},function(){var e,t,r,o;null===(t=null===(e=u.callbacks)||void 0===e?void 0:e.onUnMount)||void 0===t||t.call(e),null===(o=(r=u).__onUnMountContext)||void 0===o||o.call(r,u,l),u.dispose()}]}),[]);if((0,o.useImperativeHandle)(f,(function(){var e;return f?null!==(e=null==d?void 0:d.current.store.getConfigCallbackParam())&&void 0!==e?e:null:{}}),[f,d]),(0,i.isNil)(d))return null;var v=d.current.parentHook;return(0,o.createElement)(r.Provider,{value:v},l)}]},t.default=t.createContext},773:e=>{e.exports=r},778:e=>{e.exports=o},923:e=>{e.exports=n}},i={};return function e(t){var r=i[t];if(void 0!==r)return r.exports;var o=i[t]={exports:{}};return a[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"),require("./useStableState.js")):"function"==typeof define&&define.amd?define(["react","json-storage-formatter/isFunction","json-storage-formatter/isNil","./GlobalStore.js","./useStableState.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"),require("./useStableState.js")):e["react-hooks-global-states"]=t(e.react,e["json-storage-formatter/isFunction"],e["json-storage-formatter/isNil"],e["./GlobalStore.js"],e["./useStableState.js"]);