import { useEffect, useState } from 'react';

/**
 * @method 简易懒加载自定义hooks
 * @param nodeId 节点id
 * @param containerId 容器id,不指定默认为document
 */
const useLazyLoad = (nodeId: string, containerId: string) => {
  // 是否展示
  const [isShow, setIsShow] = useState(false);

  useEffect(() => {

    const node = document.querySelector(nodeId);

    const container = document.querySelector(containerId);

    if (container && node) {
      const intersectionObserver = new IntersectionObserver(function (entries) {
        if (entries[0].intersectionRatio <= 0) return;
        setIsShow(true)

      }, { root: container, threshold: [0, 0.5, 1] });

      // start observing
      intersectionObserver.observe(node as Element);

      return () => {
        // end observing
        intersectionObserver.unobserve(node as Element);
        setIsShow(false)
      }
    }

  }, [containerId, nodeId])

  return { isShow }

}
export default useLazyLoad;