UNPKG

@i-novus/ui-core

Version:

Базовые UI компоненты

17 lines (16 loc) 655 B
import { useEffect, useRef } from 'react'; export const useScroll = (targetRef, scrollHandler, value) => { const valueRef = useRef(value); valueRef.current = value; useEffect(() => { if (!targetRef.current || !scrollHandler) { return; } const listContainerElement = targetRef.current; listContainerElement.addEventListener('scroll', event => scrollHandler(event, valueRef.current)); // eslint-disable-next-line consistent-return return () => { listContainerElement.removeEventListener('scroll', scrollHandler); }; }, [targetRef, scrollHandler, valueRef]); };