From 99b2bd0240604882b0d527386ee33f847eb45911 Mon Sep 17 00:00:00 2001 From: Mitchell McCaffrey Date: Wed, 30 Sep 2020 15:44:48 +1000 Subject: [PATCH] Added multi map remove to map data context --- src/contexts/MapDataContext.js | 16 ++++++++++++++++ src/modals/SelectMapModal.js | 6 ++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/contexts/MapDataContext.js b/src/contexts/MapDataContext.js index dd682cb..9576dfe 100644 --- a/src/contexts/MapDataContext.js +++ b/src/contexts/MapDataContext.js @@ -101,6 +101,21 @@ export function MapDataProvider({ children }) { }); } + async function removeMaps(ids) { + await database.table("maps").bulkDelete(ids); + await database.table("states").bulkDelete(ids); + setMaps((prevMaps) => { + const filtered = prevMaps.filter((map) => !ids.includes(map.id)); + return filtered; + }); + setMapStates((prevMapsStates) => { + const filtered = prevMapsStates.filter( + (state) => !ids.includes(state.mapId) + ); + return filtered; + }); + } + async function resetMap(id) { const state = { ...defaultMapState, mapId: id }; await database.table("states").put(state); @@ -199,6 +214,7 @@ export function MapDataProvider({ children }) { mapStates, addMap, removeMap, + removeMaps, resetMap, updateMap, updateMapState, diff --git a/src/modals/SelectMapModal.js b/src/modals/SelectMapModal.js index d2510b8..f242fbb 100644 --- a/src/modals/SelectMapModal.js +++ b/src/modals/SelectMapModal.js @@ -48,7 +48,7 @@ function SelectMapModal({ ownedMaps, mapStates, addMap, - removeMap, + removeMaps, resetMap, updateMap, } = useContext(MapDataContext); @@ -199,9 +199,7 @@ function SelectMapModal({ } async function handleMapsRemove() { - for (let id of selectedMapIds) { - await removeMap(id); - } + await removeMaps(selectedMapIds); setSelectedMapIds([]); // Removed the map from the map screen if needed if (currentMap && selectedMapIds.includes(currentMap.id)) {