react-hooks-global-state-next
Version:
Simple global state for React with Hooks API without Context API
3 lines (2 loc) • 1.82 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("zustand"),require("zustand/middleware")):"function"==typeof define&&define.amd?define(["exports","react","zustand","zustand/middleware"],t):t((e||self).reactHooksGlobalStateNext={},e.React,e.zustand,e.middleware)}(this,function(e,t,n,r){var o=function(e,t){if(!e.includes(t))throw new Error("'"+t+"' not found. It must be provided in initialState as a property key.")};e.createGlobalState=function(e){var r=n.create(function(){return e}),u=Object.keys(e),a=function(e,t){"production"!==process.env.NODE_ENV&&o(u,e),r.setState(function(n){var r,o;return(r={})[e]="function"==typeof(o=t)?o(n[e]):o,r})};return{useGlobalState:function(e){"production"!==process.env.NODE_ENV&&o(u,e);var n=t.useCallback(function(t){return t[e]},[e]);return[r(n),t.useCallback(function(t){return a(e,t)},[e])]},getGlobalState:function(e){return"production"!==process.env.NODE_ENV&&o(u,e),r.getState()[e]},setGlobalState:a,subscribe:function(e,t){r.subscribe(function(n,r){n[e]!==r[e]&&t(n[e])})}}},e.createStore=function e(o,u,a){if(void 0===u&&(u=o(void 0,{type:void 0})),a)return a(e)(o,u);var i=n.create(r.redux(o,u)),c=Object.keys(u),s=function(e){"production"!==process.env.NODE_ENV&&function(e,t){if(!e.includes(t))throw new Error("'"+t+"' not found. It must be provided in initialState as a property key.")}(c,e);var n=t.useCallback(function(t){return t[e]},[e]);return i(n)};return{useStoreState:s,useGlobalState:function(e){return"production"!==process.env.NODE_ENV&&console.warn("[DEPRECATED] useStoreState instead"),[s(e),t.useCallback(function(t){i.setState(function(n){var r,o;return(r={})[e]="function"==typeof(o=t)?o(n[e]):o,r})},[e])]},getState:i.getState,dispatch:i.dispatch}}});
//# sourceMappingURL=index.umd.js.map