@modern-kit/react
Version:
28 lines (24 loc) • 902 B
JavaScript
;
var utils = require('@modern-kit/utils');
var hooksUseEventListener = require('../useEventListener/index.cjs');
var hooksUsePreservedCallback = require('../usePreservedCallback/index.cjs');
require('../useIsomorphicLayoutEffect/index.cjs');
require('react');
function useVisibilityChange({
onShow = utils.noop,
onHide = utils.noop,
enabled = true
} = {}) {
const handleVisibilityChange = hooksUsePreservedCallback.usePreservedCallback((event) => {
const isVisible = document.visibilityState === "visible";
const callbackAction = isVisible ? onShow : onHide;
callbackAction(event, document.visibilityState);
});
hooksUseEventListener.useEventListener(
typeof document !== "undefined" && enabled ? document : null,
"visibilitychange",
handleVisibilityChange
);
}
exports.useVisibilityChange = useVisibilityChange;
//# sourceMappingURL=index.cjs.map