File size: 523 Bytes
ec4551b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import { useState, useEffect } from 'react';
export function useHasScroll(
ref: React.RefObject<HTMLElement | null>,
) {
const [hasScroll, setHasScroll] = useState(false);
useEffect(() => {
const el = ref.current;
if (!el) return;
const check = () => setHasScroll(el.scrollHeight > el.clientHeight);
check();
const observer = new MutationObserver(check);
observer.observe(el, { childList: true, subtree: true });
return () => observer.disconnect();
}, [ref]);
return hasScroll;
}
|