1234567891011121314151617181920212223242526272829303132333435363738394041 |
- "use strict";
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.Collection = Collection;
- exports.CollectionContext = void 0;
- var React = _interopRequireWildcard(require("react"));
- var CollectionContext = exports.CollectionContext = /*#__PURE__*/React.createContext(null);
- /**
- * Collect all the resize event from children ResizeObserver
- */
- function Collection(_ref) {
- var children = _ref.children,
- onBatchResize = _ref.onBatchResize;
- var resizeIdRef = React.useRef(0);
- var resizeInfosRef = React.useRef([]);
- var onCollectionResize = React.useContext(CollectionContext);
- var onResize = React.useCallback(function (size, element, data) {
- resizeIdRef.current += 1;
- var currentId = resizeIdRef.current;
- resizeInfosRef.current.push({
- size: size,
- element: element,
- data: data
- });
- Promise.resolve().then(function () {
- if (currentId === resizeIdRef.current) {
- onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);
- resizeInfosRef.current = [];
- }
- });
- // Continue bubbling if parent exist
- onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);
- }, [onBatchResize, onCollectionResize]);
- return /*#__PURE__*/React.createElement(CollectionContext.Provider, {
- value: onResize
- }, children);
- }
|