Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/wojtekmaj/react-hooks. A collection of React Hooks.
hooks react react-hooks
Something went wrong. Try again.
759 B · 24 lines
TypeScript
at main
12345678910111213141516171819202122232425import { useCallback, useState } from 'react';
import useEventListener from './useEventListener.js';
const isBrowser = typeof document !== 'undefined';
/** * Returns the document's current visibility state. * * @returns {DocumentVisibilityState | null} Visibility state of the document */export default function useDocumentVisibility(): DocumentVisibilityState | null { const [visibilityState, setVisibilityState] = useState<DocumentVisibilityState | null>( isBrowser ? document.visibilityState : null, );
const handleVisibilityChange = useCallback(() => { setVisibilityState(document.visibilityState); }, []);
useEventListener(isBrowser ? document : null, 'visibilitychange', handleVisibilityChange);
return visibilityState;}