@uiw/react-affix
Version:
Affix component
24 lines • 822 B
JavaScript
import { getScroll } from '@uiw/utils';
export var getTargetRect = target => {
return target !== window ? target.getBoundingClientRect() : {
top: 0,
left: 0,
bottom: 0
};
};
export var getOffset = (element, target) => {
var elemRect = element.getBoundingClientRect();
var targetRect = getTargetRect(target);
var scrollTop = getScroll(target, true);
var scrollLeft = getScroll(target);
var docElem = window.document.body;
var clientTop = docElem.clientTop || 0;
var clientLeft = docElem.clientLeft || 0;
return {
top: elemRect.top - targetRect.top + scrollTop - clientTop,
left: elemRect.left - targetRect.left + scrollLeft - clientLeft,
width: elemRect.width,
height: elemRect.height
};
};
export var getDefaultTarget = () => typeof window !== 'undefined' ? window : null;