@heycar-uikit/core
Version:
The React UI library from HeyCar
34 lines (30 loc) • 1.27 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var useReviewRating = function () {
var _a = React.useState(false), hasIntersectionObserver = _a[0], setHasIntersectionObserver = _a[1];
var _b = React.useState(false), isVisible = _b[0], setIsVisible = _b[1];
var observer = React.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);
};
React.useEffect(function () {
var hasIntObs = !!window && 'IntersectionObserver' in window;
setHasIntersectionObserver(hasIntObs);
}, []);
return {
isVisible: isVisible,
setIntersectionObserver: React.useCallback(setIntersectionObserver, [observer]),
};
};
exports.useReviewRating = useReviewRating;