UNPKG

@roderickhsiao/react-i13n

Version:

[Experiment] React I13n provides a performant and scalable solution to application instrumentation.

27 lines (25 loc) 726 B
// @TODO, probably make it plugin so we don't need to included in main bundle if not used import { useCallback } from 'react'; import { useInViewport } from 'react-in-viewport'; var useViewportDetect = (_ref) => { var { executeEvent, node, ref, options } = _ref; var onEnterViewport = useCallback(() => { node.setIsInViewport(true); executeEvent === null || executeEvent === void 0 ? void 0 : executeEvent('enterViewport'); }, [executeEvent, node]); var onLeaveViewport = useCallback(() => { node.setIsInViewport(false); }, [node]); useInViewport(ref, options, { disconnectOnLeave: false }, { onEnterViewport, onLeaveViewport }); }; export default useViewportDetect;