framer-motion
Version:
A simple and powerful JavaScript animation library
19 lines (16 loc) • 563 B
JavaScript
import { useState, useEffect } from 'react';
function usePageInView() {
const [isInView, setIsInView] = useState(true);
useEffect(() => {
const handleVisibilityChange = () => setIsInView(!document.hidden);
if (document.hidden) {
handleVisibilityChange();
}
document.addEventListener("visibilitychange", handleVisibilityChange);
return () => {
document.removeEventListener("visibilitychange", handleVisibilityChange);
};
}, []);
return isInView;
}
export { usePageInView };