123456789101112131415161718192021222324252627282930313233 |
- import * as React from 'react';
- export var CollectionContext = /*#__PURE__*/React.createContext(null);
- /**
- * Collect all the resize event from children ResizeObserver
- */
- export 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);
- }
|