0.1.2 • Published 6 years ago
interserver-react v0.1.2
Interserver React
IntersectionObserver simplified
Checkout the main interserver package.
Features
- Tiny (~1kb minified)
- TypeScript ready
Installation
With yarn:
yarn add interserver-reactWith npm:
npm install --save interserver-reactUsage
The useInterserver function takes the same options as the interserver function (top, right, bottom, left and once).
import React from "react";
import useInterserver from "interserver-react";
const MyComponent = () => {
const { isIntersecting, setRef } = useIntersector();
return (
<div ref={setRef}>
{isIntersecting ? "Now you see me!" : "Oh, the darkness..."}
</div>
);
};Example
You can build a LazyImage component, that only requests an image, when it is approaching the viewport:
// LazyImage.jsx
import React from "react";
import useInterserver from "interserver-react";
const LazyImage = ({ alt, src, srcSet, ...props }) => {
const { isIntersecting, setRef } = useInterserver({
once: true,
top: 50,
right: 50,
bottom: 50,
left: 50,
});
const imgSrc = isIntersecting ? src : undefined;
const imgSrcSet = isIntersecting ? srcSet : undefined;
return (
<img
{...props}
src={imgSrc}
srcSet={imgSrcSet}
alt={alt}
ref={setRef}
/>
);
};
LazyImage.propTypes = propTypes;
LazyImage.defaultProps = defaultProps;
export default LazyImage;License
MIT