UNPKG

@easy-peasy/react

Version:
3 lines (2 loc) 2.58 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("immer-peasy"),require("react"),require("@easy-peasy/core")):"function"==typeof define&&define.amd?define(["exports","immer-peasy","react","@easy-peasy/core"],t):t((e=e||self).EasyPeasyReact={},e.produce,e.React,e["easy-peasy-core"])}(this,function(e,t,s,a){"use strict";var i="default"in s?s.default:s,n=s.createContext(),f="undefined"!=typeof window?s.useLayoutEffect:s.useEffect;function r(t){return function(e){var r=s.useContext(t),n=s.useRef(e),u=s.useRef(),o=s.useRef(!0),c=s.useRef(),i=s.useReducer(function(e){return e+1},0)[1];if(c.current||n.current!==e||void 0===u.current)try{u.current=e(r.getState())}catch(e){throw c.current||e}return f(function(){n.current=e,c.current=void 0}),f(function(){function e(){try{var e=n.current(r.getState());if(e===u.current)return;u.current=e}catch(e){c.current=e}o.current&&i({})}var t=r.subscribe(e);return e(),function(){o.current=!1,t()}},[]),u.current}}var u=r(n);function d(t){return function(e){return e(s.useContext(t).getActions())}}var o=d(n);function S(e){return function(){return s.useContext(e).dispatch}}var c=S(n);function y(){return s.useContext(n)}function v(u){return function(){var e=s.useContext(u),t=s.useState(!1),r=t[0],n=t[1];return s.useEffect(function(){e.persist.resolveRehydration().then(function(){return n(!0)})},[]),r}}var p=v(n);t.setAutoFreeze(!1),e.StoreProvider=function(e){var t=e.children,r=e.store;return i.createElement(n.Provider,{value:r},t)},e.createComponentStore=function(c,i){return function(e){var t=s.useMemo(function(){return a.createStore("function"==typeof c?c(e):c,i)},[]),r=s.useRef(t.getState()),n=s.useState(function(){return t.getState()}),u=n[0],o=n[1];return s.useEffect(function(){return t.subscribe(function(){var e=t.getState();r.current!==e&&(r.current=e,o(e))})},[t]),[u,t.getActions()]}},e.createContextStore=function(u,o){var c=s.createContext();return{Provider:function(e){var t=e.children,r=e.initialData,n=s.useMemo(function(){return a.createStore("function"==typeof u?u(r):u,o)},[]);return i.createElement(c.Provider,{value:n},t)},useStore:function(){return s.useContext(c)},useStoreState:r(c),useStoreActions:d(c),useStoreDispatch:S(c),useStoreRehydrated:v(c)}},e.createTypedHooks=function(){return{useStoreActions:o,useStoreDispatch:c,useStoreState:u,useStoreRehydrated:p,useStore:y}},e.useStore=y,e.useStoreActions=o,e.useStoreDispatch=c,e.useStoreRehydrated=p,e.useStoreState=u,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=easy-peasy-react.umd.js.map