UNPKG

emoji-picker-react

Version:

Emoji Picker component for React Applications on the web

33 lines (24 loc) 770 B
import { useEffect, useState } from 'react'; import { ElementRef } from '../components/context/ElementRefContext'; import { useCloseAllOpenToggles } from './useCloseAllOpenToggles'; export function useOnScroll(BodyRef: ElementRef) { const closeAllOpenToggles = useCloseAllOpenToggles(); const [scrollTop, setScrollTop] = useState(0); useEffect(() => { const bodyRef = BodyRef.current; if (!bodyRef) { return; } bodyRef.addEventListener('scroll', onScroll, { passive: true }); function onScroll() { setScrollTop(bodyRef?.scrollTop ?? 0); closeAllOpenToggles(); } return () => { bodyRef?.removeEventListener('scroll', onScroll); }; }, [BodyRef, closeAllOpenToggles]); return scrollTop; }