X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Futils%2Fstorage.js;h=2e7a84fb421d91bb5894760914d70cebab6dfb69;hp=e5978ae3e33f5f3d42ef48e56a1911b0c30a9623;hb=d4036efea5b57656478affd7d71f53dcea0f8017;hpb=b988c726df078aa456bd47709f6eee0f73dc5abd diff --git a/client/src/utils/storage.js b/client/src/utils/storage.js index e5978ae3..2e7a84fb 100644 --- a/client/src/utils/storage.js +++ b/client/src/utils/storage.js @@ -51,8 +51,8 @@ function addGame(game, callback) // Clear current live game from localStorage function clear() { - localStorage.deleteItem("gameInfo"); - localStorage.deleteItem("gameState"); + localStorage.removeItem("gameInfo"); + localStorage.removeItem("gameState"); } // Current live game: @@ -140,20 +140,28 @@ export const GameStorage = // TODO: option for remote retrieval (third arg, or just "gameRef") getLocal: function(gameId, callback) { - let games = []; dbOperation((db) => { - // TODO: if gameId is provided, limit search to gameId (just .get(gameId). ...) let objectStore = db.transaction('games').objectStore('games'); - objectStore.openCursor().onsuccess = function(event) { - var cursor = event.target.result; - // if there is still another cursor to go, keep running this code - if (cursor) - { - games.push(cursor.value); - cursor.continue(); + if (!gameId) //retrieve all + { + let games = []; + objectStore.openCursor().onsuccess = function(event) { + let cursor = event.target.result; + // if there is still another cursor to go, keep running this code + if (cursor) + { + games.push(cursor.value); + cursor.continue(); + } + else + callback(games); + } + } + else //just one game + { + objectStore.get(gameId).onsuccess = function(event) { + callback(event.target.result); } - else - callback(games); } }); },