Fixed bug with corrupted map state on token deletion

This commit is contained in:
Mitchell McCaffrey
2021-04-16 13:36:14 +10:00
parent 3577938501
commit 1d5cf77aea
7 changed files with 36 additions and 24 deletions
+20 -8
View File
@@ -377,20 +377,32 @@ function NetworkedMapAndTokens({ session }) {
const { id, lastModified, owner } = token;
addAssetIfNeeded({ type: "token", id, lastModified, owner });
}
handleMapTokenStateChange({ [tokenState.id]: tokenState });
setCurrentMapState((prevMapState) => ({
...prevMapState,
tokens: {
...prevMapState.tokens,
[tokenState.id]: tokenState,
},
}));
}
function handleMapTokenStateChange(change) {
if (!currentMapState) {
return;
}
setCurrentMapState((prevMapState) => ({
...prevMapState,
tokens: {
...prevMapState.tokens,
...change,
},
}));
setCurrentMapState((prevMapState) => {
let tokens = { ...prevMapState.tokens };
for (let id in change) {
if (id in tokens) {
tokens[id] = { ...tokens[id], ...change[id] };
}
}
return {
...prevMapState,
tokens,
};
});
}
function handleMapTokenStateRemove(tokenState) {