JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr{ gilour

File "sticky-sentinel.ts"

Full Path: /home/markqprx/iniasli.pro/client/utils/hooks/sticky-sentinel.ts
File size: 634 bytes
MIME-type: text/plain
Charset: utf-8

import {useCallback, useRef, useState} from 'react';

export function useStickySentinel() {
  const [isSticky, setIsSticky] = useState(false);

  const observerRef = useRef<IntersectionObserver>();

  const sentinelRef = useCallback((sentinel: HTMLDivElement | null) => {
    if (sentinel) {
      const observer = new IntersectionObserver(
        ([e]) => setIsSticky(e.intersectionRatio < 1),
        {threshold: [1]}
      );
      observerRef.current = observer;
      observer.observe(sentinel);
    } else if (observerRef.current) {
      observerRef.current?.disconnect();
    }
  }, []);

  return {isSticky, sentinelRef};
}