diff --git a/src/components/map/Map.js b/src/components/map/Map.js
index 56ae6a1..7d947ff 100644
--- a/src/components/map/Map.js
+++ b/src/components/map/Map.js
@@ -32,6 +32,7 @@ function Map({
onFogDrawRedo,
allowMapDrawing,
allowFogDrawing,
+ allowMapChange,
disabledTokens,
}) {
const { tokensById } = useContext(TokenDataContext);
@@ -141,6 +142,9 @@ function Map({
if (!allowFogDrawing) {
disabledControls.push("fog");
}
+ if (!allowMapChange) {
+ disabledControls.push("map");
+ }
const disabledSettings = { fog: [], drawing: [] };
if (mapShapes.length === 0) {
diff --git a/src/components/map/MapControls.js b/src/components/map/MapControls.js
index 55450e9..33873ba 100644
--- a/src/components/map/MapControls.js
+++ b/src/components/map/MapControls.js
@@ -67,6 +67,7 @@ function MapContols({
onMapStateChange={onMapStateChange}
currentMap={currentMap}
currentMapState={currentMapState}
+ disabled={disabledControls.includes("map")}
/>
),
},
diff --git a/src/components/map/SelectMapButton.js b/src/components/map/SelectMapButton.js
index 799a1dd..6b0d296 100644
--- a/src/components/map/SelectMapButton.js
+++ b/src/components/map/SelectMapButton.js
@@ -11,6 +11,7 @@ function SelectMapButton({
onMapStateChange,
currentMap,
currentMapState,
+ disabled,
}) {
const [isModalOpen, setIsModalOpen] = useState(false);
@@ -30,6 +31,7 @@ function SelectMapButton({
aria-label="Select Map"
title="Select Map"
onClick={openModal}
+ disabled={disabled}
>
diff --git a/src/network/NetworkedMapAndTokens.js b/src/network/NetworkedMapAndTokens.js
index 6069c1a..4a8e9ef 100644
--- a/src/network/NetworkedMapAndTokens.js
+++ b/src/network/NetworkedMapAndTokens.js
@@ -25,9 +25,12 @@ import Tokens from "../components/token/Tokens";
*/
function NetworkedMapAndTokens({ session }) {
const { userId } = useContext(AuthContext);
- const { assetLoadStart, assetLoadFinish, assetProgressUpdate } = useContext(
- MapLoadingContext
- );
+ const {
+ assetLoadStart,
+ assetLoadFinish,
+ assetProgressUpdate,
+ isLoading,
+ } = useContext(MapLoadingContext);
const { putToken, getToken } = useContext(TokenDataContext);
const { putMap, getMap, updateMap } = useContext(MapDataContext);
@@ -363,6 +366,8 @@ function NetworkedMapAndTokens({ session }) {
};
});
+ const canChangeMap = !isLoading;
+
const canEditMapDrawing =
currentMap !== null &&
currentMapState !== null &&
@@ -407,6 +412,7 @@ function NetworkedMapAndTokens({ session }) {
onFogDrawRedo={handleFogDrawRedo}
allowMapDrawing={canEditMapDrawing}
allowFogDrawing={canEditFogDrawing}
+ allowMapChange={canChangeMap}
disabledTokens={disabledMapTokens}
/>