UNPKG

@modern-kit/react

Version:
28 lines (24 loc) 902 B
'use strict'; 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