UNPKG

react-behave

Version:

A library of behaviors for React applications.

35 lines (27 loc) 1.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.watchResize = watchResize; var _lodash = _interopRequireDefault(require("lodash.throttle")); var _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // Corresponds to 1 frame var DEFAULT_RESIZE_INTERVAL = 16; function watchResize(target, cb) { var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, _ref$resizeInterval = _ref.resizeInterval, resizeInterval = _ref$resizeInterval === void 0 ? DEFAULT_RESIZE_INTERVAL : _ref$resizeInterval; function handleResize(entries) { if (entries.length) { cb(entries[0].contentRect); } } var observer = (0, _lodash["default"])(handleResize, resizeInterval); var resizeObserver = new _resizeObserverPolyfill["default"](observer); resizeObserver.observe(target); return function () { observer.cancel(); resizeObserver.unobserve(target); }; }