// Get the bounding client rect from an IntersectionObserver entry. // This is to work around a bug in Chrome: https://crbug.com/737228 let hasBoundingRectBug; function getRectFromEntry(entry) { if (typeof hasBoundingRectBug !== 'boolean') { const boundingRect = entry.target.getBoundingClientRect(); const observerRect = entry.boundingClientRect; hasBoundingRectBug = boundingRect.height !== observerRect.height || boundingRect.top !== observerRect.top || boundingRect.width !== observerRect.width || boundingRect.bottom !== observerRect.bottom || boundingRect.left !== observerRect.left || boundingRect.right !== observerRect.right; } return hasBoundingRectBug ? entry.target.getBoundingClientRect() : entry.boundingClientRect; } export default getRectFromEntry;