diff --git a/src/contexts/MapDataContext.js b/src/contexts/MapDataContext.js index 349b46c..17cdb08 100644 --- a/src/contexts/MapDataContext.js +++ b/src/contexts/MapDataContext.js @@ -145,7 +145,9 @@ export function MapDataProvider({ children }) { } return newMaps; }); - console.log("updated"); + + const updatedMap = (await database.table("maps").get(id)) || {}; + return { ...updatedMap, ...update }; } async function updateMaps(ids, update) { diff --git a/src/modals/SelectMapModal.js b/src/modals/SelectMapModal.js index 8f745f1..d60c820 100644 --- a/src/modals/SelectMapModal.js +++ b/src/modals/SelectMapModal.js @@ -280,8 +280,8 @@ function SelectMapModal({ if (selectedMapIds.length === 1) { // Update last used for cache invalidation const lastUsed = Date.now(); - await updateMap(selectedMapIds[0], { lastUsed }); - onMapChange({ ...selectedMaps[0], lastUsed }, selectedMapStates[0]); + const updatedMap = await updateMap(selectedMapIds[0], { lastUsed }); + onMapChange(updatedMap, selectedMapStates[0]); } else { onMapChange(null, null); } diff --git a/src/network/NetworkedMapAndTokens.js b/src/network/NetworkedMapAndTokens.js index d02fb93..47f74f5 100644 --- a/src/network/NetworkedMapAndTokens.js +++ b/src/network/NetworkedMapAndTokens.js @@ -247,8 +247,8 @@ function NetworkedMapAndTokens({ session }) { if (cachedMap && cachedMap.lastModified >= newMap.lastModified) { // Update last used for cache invalidation const lastUsed = Date.now(); - await updateMap(cachedMap.id, { lastUsed }); - setCurrentMap({ ...cachedMap, lastUsed }); + const updatedMap = await updateMap(cachedMap.id, { lastUsed }); + setCurrentMap(updatedMap); } else { // Save map data but remove last modified so if there is an error // during the map request the cache is invalid. Also add last used @@ -319,9 +319,8 @@ function NetworkedMapAndTokens({ session }) { } if (id === "mapResponse") { const { id, ...update } = data; - await updateMap(id, update); - const newMap = await getMapFromDB(data.id); - setCurrentMap(newMap); + const updatedMap = await updateMap(id, update); + setCurrentMap(updatedMap); } if (id === "mapState") { setCurrentMapState(data);