@modern-kit/react
Version:
26 lines (23 loc) • 796 B
JavaScript
import { noop } from '@modern-kit/utils';
import { useEventListener } from '../useEventListener/index.mjs';
import { usePreservedCallback } from '../usePreservedCallback/index.mjs';
import '../useIsomorphicLayoutEffect/index.mjs';
import 'react';
function useVisibilityChange({
onShow = noop,
onHide = noop,
enabled = true
} = {}) {
const handleVisibilityChange = usePreservedCallback((event) => {
const isVisible = document.visibilityState === "visible";
const callbackAction = isVisible ? onShow : onHide;
callbackAction(event, document.visibilityState);
});
useEventListener(
typeof document !== "undefined" && enabled ? document : null,
"visibilitychange",
handleVisibilityChange
);
}
export { useVisibilityChange };
//# sourceMappingURL=index.mjs.map