@wulperstudio/cms
Version:
Wulper Studio Library Components CMS
29 lines (28 loc) • 1.25 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useTrackVisibility = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = require("react");
var _useIntersectionObserver = require("./useIntersectionObserver");
var useTrackVisibility = exports.useTrackVisibility = function useTrackVisibility(args) {
var _result$entry;
var _useIntersectionObser = (0, _useIntersectionObserver.useIntersectionObserver)(args),
_useIntersectionObser2 = (0, _slicedToArray2["default"])(_useIntersectionObser, 2),
ref = _useIntersectionObser2[0],
result = _useIntersectionObser2[1];
var isVisible = Boolean((_result$entry = result.entry) == null ? void 0 : _result$entry.isIntersecting);
var _useState = (0, _react.useState)(isVisible),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
wasEverVisible = _useState2[0],
setWasEverVisible = _useState2[1];
if (isVisible && !wasEverVisible) {
setWasEverVisible(true);
}
return [ref, Object.assign({}, result, {
isVisible: isVisible,
wasEverVisible: wasEverVisible
})];
};