UNPKG

@uiw/react-affix

Version:
24 lines 822 B
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;