Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import { useState, useEffect } from "react";
function useImageValidation(url: string | undefined) {
const [isValid, setIsValid] = useState<boolean | null>(null);
useEffect(() => {
if (!url) {
setIsValid(false);
return;
}
const img = new Image();
img.onload = () => setIsValid(true);
img.onerror = () => setIsValid(false);
img.src = url;
return () => {
img.onload = null;
img.onerror = null;
};
}, [url]);
return isValid;
}
export default useImageValidation;
|