react-hooks-global-states
Version:
This is a package to easily handling global-state across your react-components using hooks.
1 lines • 2.99 kB
JavaScript
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),i=r(506),a=r(773);t.createContext=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=(0,o.createContext)(null),s=function(){var e=(0,o.useContext)(r);if(!e)throw new Error("ContextHook must be used within a ContextProvider");return e()};s.createSelectorHook=function(e,t){return function(){var n=(0,o.useContext)(r);if((0,a.isNil)(n))throw new Error("SelectorHook must be used within a ContextProvider");var i=(0,o.useRef)(e);i.current=e;var s=(0,o.useMemo)((function(){return(0,a.isNil)(e)?n:n.createSelectorHook((function(){return i.current.apply(i,arguments)}),t)}),[n]);return(0,o.useEffect)((function(){return function(){null==s||s.dispose()}}),[s]),s.apply(void 0,arguments)}};var u=function(){var e=(0,o.useContext)(r);if((0,a.isNil)(e))throw new Error("useStateControls must be used within a ContextProvider");return e.stateControls()},l=function(e,t){var n=(0,o.useContext)(r);if((0,a.isNil)(n))throw new Error("useObservableBuilder must be used within a ContextProvider");return n.createObservable(e,t)};return s.stateControls=function(){return[u,l]},[s,function(s){var u=s.children,l=s.value,c=s.ref,f=(0,o.useMemo)((function(){var r,o=function(){return(0,i.isFunction)(e)?e():e},s=(0,a.isNil)(l)?o():(0,i.isFunction)(l)?l(o()):l,u=new n.GlobalStore(s,Object.assign(Object.assign({},t),{metadata:null!==(r=(0,i.isFunction)(t.metadata)?t.metadata():t.metadata)&&void 0!==r?r:{}})),c=u.getHook();return{store:u,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]),(0,o.useImperativeHandle)(c,(function(){var e;return c?null!==(e=v.getConfigCallbackParam())&&void 0!==e?e:null:{}}),[c,v]),(0,o.createElement)(r.Provider,{value:d},u)}]},t.default=t.createContext},773:e=>{e.exports=r},778:e=>{e.exports=o}},i={};return function e(t){var r=i[t];if(void 0!==r)return r.exports;var o=i[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"]);