@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
34 lines (33 loc) • 704 B
JavaScript
import { useState, useEffect } from "react";
const useImageLoaded = (src, srcSet) => {
const [imageLoaded, setImageLoaded] = useState(false);
useEffect(() => {
if (!src && !srcSet) {
return void 0;
}
setImageLoaded(false);
let active = true;
const image = new Image();
image.src = src || "";
image.srcset = srcSet || "";
image.onload = () => {
if (!active) {
return;
}
setImageLoaded("loaded");
};
image.onerror = () => {
if (!active) {
return;
}
setImageLoaded("error");
};
return () => {
active = false;
};
}, [src, srcSet]);
return imageLoaded;
};
export {
useImageLoaded
};