Added map loading provider to fix bugs with multiple asset loading
This commit is contained in:
31
src/contexts/MapLoadingContext.js
Normal file
31
src/contexts/MapLoadingContext.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import React, { useState } from "react";
|
||||
|
||||
const MapLoadingContext = React.createContext();
|
||||
|
||||
export function MapLoadingProvider({ children }) {
|
||||
const [loadingAssetCount, setLoadingAssetCount] = useState(0);
|
||||
|
||||
function assetLoadStart() {
|
||||
setLoadingAssetCount((prevLoadingAssets) => prevLoadingAssets + 1);
|
||||
}
|
||||
|
||||
function assetLoadFinish() {
|
||||
setLoadingAssetCount((prevLoadingAssets) => prevLoadingAssets - 1);
|
||||
}
|
||||
|
||||
const isLoading = loadingAssetCount > 0;
|
||||
|
||||
const value = {
|
||||
assetLoadStart,
|
||||
assetLoadFinish,
|
||||
isLoading,
|
||||
};
|
||||
|
||||
return (
|
||||
<MapLoadingContext.Provider value={value}>
|
||||
{children}
|
||||
</MapLoadingContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export default MapLoadingContext;
|
||||
Reference in New Issue
Block a user