UNPKG

@heycar-uikit/core

Version:
32 lines (29 loc) 1.2 kB
import { useState, useMemo, useEffect, useCallback } from 'react'; var useReviewRating = function () { var _a = useState(false), hasIntersectionObserver = _a[0], setHasIntersectionObserver = _a[1]; var _b = useState(false), isVisible = _b[0], setIsVisible = _b[1]; var observer = useMemo(function () { if (hasIntersectionObserver) { return new IntersectionObserver(function (entries) { return setIsVisible(entries[0].isIntersecting); }, { threshold: 1.0, }); } return undefined; }, [hasIntersectionObserver]); var setIntersectionObserver = function (targetId) { var target = document.querySelector("#" + targetId); if (target && (observer === null || observer === void 0 ? void 0 : observer.observe)) observer.observe(target); }; useEffect(function () { var hasIntObs = !!window && 'IntersectionObserver' in window; setHasIntersectionObserver(hasIntObs); }, []); return { isVisible: isVisible, setIntersectionObserver: useCallback(setIntersectionObserver, [observer]), }; }; export { useReviewRating };