Faster skeleton with refs (#10063)

* don't load metadata until image has loaded

* correct class name and remove lazy loading pkg

* try refs

* hook

* don't load metadata until image has loaded

* correct class name and remove lazy loading pkg

* try refs

* hook
This commit is contained in:
Josh Hawkins
2024-02-26 12:34:52 -06:00
committed by GitHub
parent 1dd904d89a
commit 93bd9ded88
2 changed files with 28 additions and 2 deletions

View File

@@ -0,0 +1,24 @@
import { useEffect, useRef, useState } from "react";
const useImageLoaded = (): [
React.RefObject<HTMLImageElement>,
boolean,
() => void,
] => {
const [loaded, setLoaded] = useState(false);
const ref = useRef<HTMLImageElement>(null);
const onLoad = () => {
setLoaded(true);
};
useEffect(() => {
if (ref.current && ref.current?.complete) {
onLoad();
}
});
return [ref, loaded, onLoad];
};
export default useImageLoaded;