@octopusdeploy/design-system-components
Version:
The design systems component library.
36 lines (35 loc) • 1 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.useCanLoadImage = useCanLoadImage;
const react_1 = __importDefault(require("react"));
function useCanLoadImage(src) {
const [loaded, setLoaded] = react_1.default.useState("loading");
react_1.default.useEffect(() => {
if (!src) {
return undefined;
}
setLoaded("loading");
let active = true;
const image = new Image();
image.onload = () => {
if (!active) {
return;
}
setLoaded(true);
};
image.onerror = () => {
if (!active) {
return;
}
setLoaded("error");
};
image.src = src;
return () => {
active = false;
};
}, [src]);
return loaded;
}