bresnow_utility-react-hooks
Version:
Modular utility hooks that we often use grouped in one package. Written in TypeScript, documented, tested and maintained.Disclaimer: at least React 16 is needed (the one with hooks ;) )
3 lines (2 loc) • 3.24 kB
JavaScript
function ___$insertStyle(e){if(e&&"undefined"!=typeof window){var t=document.createElement("style");return t.setAttribute("type","text/css"),t.innerHTML=e,document.head.appendChild(t),e}}function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react")),lzObject=require("lz-object");function useContextReducer(a,c){var o=React.createContext(c),f=React.createContext(function(){return c});return[function(e){var t=React.useContext(o);if(void 0===t)throw new Error("useStateCtx must be used within a Context.Provider");return t[e]},function(){var e=React.useContext(f);if(void 0===e)throw new Error("useDispatchCtx must be used within a Context.Provider");return e},function(e){var t=e.children,r=React.useReducer(a,c),u=r[0],n=r[1];return React.createElement(f.Provider,{value:n},React.createElement(o.Provider,{value:u},t))}]}function createSafeCtx(){var t=React.createContext(void 0);return[function(){var e=React.useContext(t);if(!e)throw new Error("useCtx must be inside a Provider with a value");return e},t.Provider]}var useSafeEffect="undefined"!=typeof window?React.useLayoutEffect:React.useEffect;function useSafeCallback(r){var u=useIsMounted();return React.useCallback(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current?r.apply(void 0,e):void 0},[r])}var useSafeReducer=function(e,t){var r=React.useReducer(e,t),u=r[0],n=r[1],a=useIsMounted();return[u,function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];a.current&&n(e)}]};function useIsMounted(){var e=React.useRef(!1);return useSafeEffect(function(){return e.current=!0,function(){e.current=!1}},[]),e}var noop=function(){};function useIf(t,e,r){var u=useSafeCallback(e);useSafeEffect(function(){for(var e=0;e<t.length;e++)if(!1===t[e]||null===t[e]||void 0===t[e])return null!=r&&r.else?r.else:noop();u()},[t])}var useLZObject=function(e){var t=e.output;return[useSafeCallback(function(e){return lzObject.lzObject.compress(e,{output:t})}),useSafeCallback(function(e){return lzObject.lzObject.decompress(e,{output:t})})]};function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;for(var u=Array(e),n=0,t=0;t<r;t++)for(var a=arguments[t],c=0,o=a.length;c<o;c++,n++)u[n]=a[c];return u}function useTimeout(e,t){var r=React.useRef(e),u=React.useRef();useSafeEffect(function(){r.current=e},[e]);var n=React.useCallback(function(){u.current=setTimeout(function(){return r.current()},t)},[t]),a=React.useCallback(function(){u.current&&clearTimeout(u.current)},[]);return useSafeEffect(function(){return n(),a},[t,n,a]),{reset:React.useCallback(function(){a(),n()},[a,n]),clear:a}}function useDebounce(e,t,r){var u=useTimeout(e,t),n=u.reset,a=u.clear;useSafeEffect(n,__spreadArrays(r,[n])),useSafeEffect(a,[])}exports.createSafeCtx=createSafeCtx,exports.useContextReducer=useContextReducer,exports.useDebounce=useDebounce,exports.useIf=useIf,exports.useIsMounted=useIsMounted,exports.useLZObject=useLZObject,exports.useSafeCallback=useSafeCallback,exports.useSafeEffect=useSafeEffect,exports.useSafeReducer=useSafeReducer,exports.useTimeout=useTimeout;
//# sourceMappingURL=index.js.map