Files
grungnet/src/hooks/useMapImage.tsx
T

24 lines
675 B
TypeScript
Raw Normal View History

import { useEffect, useState } from "react";
import useImage from "use-image";
2021-04-22 16:53:35 +10:00
import { useDataURL } from "../contexts/AssetsContext";
import { mapSources as defaultMapSources } from "../maps";
function useMapImage(map) {
2021-04-22 16:53:35 +10:00
const mapURL = useDataURL(map, defaultMapSources);
const [mapImage, mapImageStatus] = useImage(mapURL);
// Create a map source that only updates when the image is fully loaded
2021-04-22 16:53:35 +10:00
const [loadedMapImage, setLoadedMapImage] = useState();
useEffect(() => {
2021-04-22 16:53:35 +10:00
if (mapImageStatus === "loaded") {
setLoadedMapImage(mapImage);
}
2021-04-22 16:53:35 +10:00
}, [mapImage, mapImageStatus]);
2021-04-22 16:53:35 +10:00
return [loadedMapImage, mapImageStatus];
}
export default useMapImage;