File size: 915 Bytes
f2e9a59 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 'use client';
import { useEffect, useState } from 'react';
export function usePageVisibility(page: number) {
if (typeof document === 'undefined') {
return true;
}
const [isVisible, setIsVisible] = useState(!document.hidden);
useEffect(() => {
if (page > 1) {
return;
}
const handleVisibilityChange = () => {
setIsVisible(!document.hidden);
};
const onBlur = () => {
setIsVisible(false);
};
const onFocus = () => {
setIsVisible(true);
};
window.addEventListener('blur', onBlur);
window.addEventListener('focus', onFocus);
document.addEventListener('visibilitychange', handleVisibilityChange);
return () => {
document.removeEventListener('visibilitychange', handleVisibilityChange);
document.removeEventListener('blur', onBlur);
document.removeEventListener('focus', focus);
};
}, []);
return isVisible;
}
|