UNPKG

react-behave

Version:

A library of behaviors for React applications.

23 lines (20 loc) 776 B
import throttle from 'lodash.throttle'; import ResizeObserver from 'resize-observer-polyfill'; // Corresponds to 1 frame var DEFAULT_RESIZE_INTERVAL = 16; export 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 = throttle(handleResize, resizeInterval); var resizeObserver = new ResizeObserver(observer); resizeObserver.observe(target); return function () { observer.cancel(); resizeObserver.unobserve(target); }; }