@better-typed/react-window-hooks
Version:
React window hooks
3 lines (2 loc) • 1.29 kB
JavaScript
import{useRef as r,useState as n}from"react";import{useWillUnmount as t,useDidUpdate as e}from"@better-typed/react-lifecycle-hooks";function o(r,n){var t="function"==typeof Symbol&&r[Symbol.iterator];if(!t)return r;var e,o,i=t.call(r),c=[];try{for(;(void 0===n||n-- >0)&&!(e=i.next()).done;)c.push(e.value)}catch(r){o={error:r}}finally{try{e&&!e.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return c}var i=function(){try{return!!window.addEventListener}catch(r){return!1}},c=function(n,c,u){void 0===u&&(u=[]);var f=r(!1);t((function(){return f.current=!0})),e((function(){if(i()){var r=o(function(r){return"string"==typeof r?[r,{}]:r}(n),2),t=r[0],e=r[1],u="object"==typeof e?e:{};return window.addEventListener(t,c,u),function(){return window.removeEventListener(t,c,u)}}}),function(r,n,t){if(t||2===arguments.length)for(var e,o=0,i=n.length;o<i;o++)!e&&o in n||(e||(e=Array.prototype.slice.call(n,0,o)),e[o]=n[o]);return r.concat(e||Array.prototype.slice.call(n))}([JSON.stringify(n)],o(u),!1),!0)},u=function(r){var t=i(),e=function(){return[t?window.innerWidth:0,t?window.innerHeight:0]},u=o(n(e),2),f=u[0],a=u[1];return c("resize",(function(){a(e()),null==r||r(e())})),f};export{i as getIsClient,c as useWindowEvent,u as useWindowSize};
//# sourceMappingURL=index.esm.js.map