UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

50 lines (49 loc) 1.37 kB
import * as React from "react"; function useStableCallback(fn) { const fnRef = React.useRef(fn); fnRef.current = fn; const ref = React.useRef((...args) => fnRef.current(...args)); return ref.current; } const useLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect; function usePrevious(value) { const ref = React.useRef({ value, prev: null }); const current = ref.current.value; if (value !== current) { ref.current = { value, prev: current }; } return ref.current.prev; } function useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) { React.useEffect(() => { if (!ref.current || options.disabled || typeof IntersectionObserver !== "function") { return; } const observer = new IntersectionObserver(([entry]) => { callback(entry); }, intersectionObserverOptions); observer.observe(ref.current); return () => { observer.disconnect(); }; }, [callback, intersectionObserverOptions, options.disabled, ref]); } function useForwardedRef(ref) { const innerRef = React.useRef(null); React.useImperativeHandle(ref, () => innerRef.current, []); return innerRef; } export { useForwardedRef, useIntersectionObserver, useLayoutEffect, usePrevious, useStableCallback }; //# sourceMappingURL=utils.js.map