ahooks
Version:
react hooks library
20 lines (19 loc) • 587 B
JavaScript
import { useState } from 'react';
import useEventListener from '../useEventListener';
import isBrowser from '../utils/isBrowser';
const getVisibility = () => {
if (!isBrowser) {
return 'visible';
}
return document.visibilityState;
};
function useDocumentVisibility() {
const [documentVisibility, setDocumentVisibility] = useState(getVisibility);
useEventListener('visibilitychange', () => {
setDocumentVisibility(getVisibility());
}, {
target: () => document,
});
return documentVisibility;
}
export default useDocumentVisibility;