UNPKG

react-resize-aware

Version:

A React hook that makes it possible to listen to element resize events.

3 lines (2 loc) 1.68 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("react/jsx-runtime")):"function"==typeof define&&define.amd?define(["react","react/jsx-runtime"],t):(e||self).reactResizeAware=t(e.react,e.jsx)}(this,function(e,t){function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,t}var r=/*#__PURE__*/n(e),i={display:"block",opacity:0,position:"absolute",top:0,left:0,height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:-1,maxHeight:"inherit",maxWidth:"inherit"},u=function(e){var n=e.onResize,u=r.useRef();return function(e,t){var n=function(){return e.current&&e.current.contentDocument&&e.current.contentDocument.defaultView};function i(){t();var e=n();e&&e.addEventListener("resize",t)}r.useEffect(function(){return n()?i():e.current&&"addEventListener"in e.current&&e.current.addEventListener("load",i),function(){var e=n();null!=e&&e&&"function"==typeof e.removeEventListener&&e.removeEventListener("resize",t)}},[])}(u,function(){return n(u)}),/*#__PURE__*/t.jsx("iframe",{style:i,src:"about:blank",ref:u,"aria-hidden":!0,tabIndex:-1,frameBorder:0})},o=function(e){return null!=e?{width:e.offsetWidth,height:e.offsetHeight}:null};return function(e){void 0===e&&(e=o);var n=r.useState(e(null)),i=n[0],c=n[1],f=r.useCallback(function(t){return c(e(t.current))},[e]);return[r.useMemo(function(){/*#__PURE__*/return t.jsx(u,{onResize:f})},[f]),i]}}); //# sourceMappingURL=index.umd.js.map