UNPKG

@modern-kit/react

Version:
26 lines (23 loc) 796 B
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