Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

useOffsetAbsolute.ts

Blame
  • useOffsetAbsolute.ts 541 B
    import {useBoundingRect} from "./useBoundingRect";
    
    export const useOffsetAbsolute = <T extends HTMLElement, U extends HTMLElement>(parent: T | null, child: U | null, position: number) => {
        const parentRect = useBoundingRect(parent);
        const childRect = useBoundingRect(child);
    
        if (parentRect === null || childRect === null) {
            return 0;
        }
    
        const offset = position - parentRect.left - childRect.width / 2;
        const maximum = parentRect.width - childRect.width;
        return Math.max(0, Math.min(offset, maximum));
    }