Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@sushiswap/hooks / dist / useInViewport.js
Size: Mime:
import { useEffect, useState } from 'react';
export const useInViewport = (ref) => {
    const [isInViewport, setIsInViewport] = useState(false);
    const [isLoaded, setIsLoaded] = useState(false);
    useEffect(() => {
        const observer = new IntersectionObserver(([entry]) => {
            if (entry.isIntersecting) {
                setIsLoaded(true);
            }
            setIsInViewport(entry.isIntersecting);
        });
        if (ref.current) {
            observer.observe(ref.current);
        }
    }, [ref]);
    return isInViewport || isLoaded;
};