@wulperstudio/cms
Version:
Wulper Studio Library Components CMS
22 lines • 924 B
JavaScript
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import { useState } from 'react';
import { useIntersectionObserver } from './useIntersectionObserver';
export var useTrackVisibility = function useTrackVisibility(args) {
var _result$entry;
var _useIntersectionObser = useIntersectionObserver(args),
_useIntersectionObser2 = _slicedToArray(_useIntersectionObser, 2),
ref = _useIntersectionObser2[0],
result = _useIntersectionObser2[1];
var isVisible = Boolean((_result$entry = result.entry) == null ? void 0 : _result$entry.isIntersecting);
var _useState = useState(isVisible),
_useState2 = _slicedToArray(_useState, 2),
wasEverVisible = _useState2[0],
setWasEverVisible = _useState2[1];
if (isVisible && !wasEverVisible) {
setWasEverVisible(true);
}
return [ref, Object.assign({}, result, {
isVisible: isVisible,
wasEverVisible: wasEverVisible
})];
};