UNPKG

@modern-kit/react

Version:
28 lines (25 loc) 904 B
import { jsx } from 'react/jsx-runtime'; import { forwardRef } from 'react'; import { useIntersectionObserver } from '../../hooks/useIntersectionObserver/index.mjs'; import { useMergeRefs } from '../../hooks/useMergeRefs/index.mjs'; import '../../hooks/usePreservedCallback/index.mjs'; import '@modern-kit/utils'; import '../../utils/mergeRefs/index.mjs'; const LazyImage = forwardRef( ({ src, threshold, root, rootMargin, ...restProps }, ref) => { const { ref: imgRef } = useIntersectionObserver({ onIntersectStart: (entry) => { const targetImgElement = entry.target; targetImgElement.src = src; }, calledOnce: true, threshold, root, rootMargin }); return /* @__PURE__ */ jsx("img", { ref: useMergeRefs(ref, imgRef), ...restProps }); } ); LazyImage.displayName = "LazyImage"; export { LazyImage }; //# sourceMappingURL=index.mjs.map