UNPKG

livstream-player

Version:

A lightweight livestream player SDK for React apps

28 lines (27 loc) 1.03 kB
import useEventListener from "./useEventListener"; import { useCallback, useEffect, useRef, useState } from 'react'; const useElementDimensions = (dependency = []) => { const ref = useRef(null); const [dimensions, setDimensions] = useState(null); const refresh = useCallback(() => { var _a; const domRect = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(); if (domRect) { setDimensions(domRect); } }, []); useEffect(() => { const timeout = setTimeout(() => { var _a; const domRect = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect(); if (domRect) { setDimensions(domRect); } }, 300); return () => clearTimeout(timeout); }, [dependency]); useEventListener('resize', refresh); useEventListener('scroll', refresh, true); return { dimensions, ref, refresh }; }; export default useElementDimensions;