@modern-kit/react
Version:
30 lines (26 loc) • 1.01 kB
JavaScript
;
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var hooksUseIntersectionObserver = require('../../hooks/useIntersectionObserver/index.cjs');
var hooksUseMergeRefs = require('../../hooks/useMergeRefs/index.cjs');
require('../../hooks/usePreservedCallback/index.cjs');
require('@modern-kit/utils');
require('../../utils/mergeRefs/index.cjs');
const LazyImage = React.forwardRef(
({ src, threshold, root, rootMargin, ...restProps }, ref) => {
const { ref: imgRef } = hooksUseIntersectionObserver.useIntersectionObserver({
onIntersectStart: (entry) => {
const targetImgElement = entry.target;
targetImgElement.src = src;
},
calledOnce: true,
threshold,
root,
rootMargin
});
return /* @__PURE__ */ jsxRuntime.jsx("img", { ref: hooksUseMergeRefs.useMergeRefs(ref, imgRef), ...restProps });
}
);
LazyImage.displayName = "LazyImage";
exports.LazyImage = LazyImage;
//# sourceMappingURL=index.cjs.map