Lock in loaded images

This commit is contained in:
Kieran 2023-01-10 13:24:23 +00:00
parent a6cb8a8a8c
commit 07fc595f46
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941

View File

@ -1,11 +1,22 @@
import { useEffect, useState } from 'react';
import { useInView } from 'react-intersection-observer'; import { useInView } from 'react-intersection-observer';
export default function LazyImage(props) { export default function LazyImage(props) {
const { ref, inView, entry } = useInView(); const { ref, inView, entry } = useInView();
const [shown, setShown] = useState(false);
useEffect(() => {
setShown(s => {
if (!s && inView) {
return true;
}
return s;
})
}, [inView]);
return ( return (
<div ref={ref}> <div ref={ref}>
{inView ? <img {...props} /> : null} {shown ? <img {...props} /> : null}
</div> </div>
) )
} }