UNPKG

@octopusdeploy/design-system-components

Version:
36 lines (35 loc) 1 kB
"use strict"; 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; }