Resolves #593 -- add alias support with local storage

This commit is contained in:
Peter Cottle 2020-07-05 14:57:21 -07:00
parent a1f7bda2d9
commit 12cdb49457
3 changed files with 55 additions and 2 deletions

View file

@ -9,6 +9,7 @@ var util = require('../util');
var ActionTypes = AppConstants.ActionTypes;
var SOLVED_MAP_STORAGE_KEY = 'solvedMap';
var ALIAS_STORAGE_KEY = 'aliasMap';
var _levelMap = {};
var _solvedMap = {};
@ -55,6 +56,26 @@ function _syncToStorage() {
}
}
function getAliasMap() {
try {
return JSON.parse(localStorage.getItem(ALIAS_STORAGE_KEY) || '{}') || {};
} catch (e) {
return {};
}
}
function addToAliasMap(alias, expansion) {
const aliasMap = getAliasMap();
aliasMap[alias] = expansion;
localStorage.setItem(ALIAS_STORAGE_KEY, JSON.stringify(aliasMap));
}
function removeFromAliasMap(alias) {
const aliasMap = getAliasMap();
delete aliasMap[alias];
localStorage.setItem(ALIAS_STORAGE_KEY, JSON.stringify(aliasMap));
}
var validateLevel = function(level) {
level = level || {};
var requiredFields = [
@ -108,6 +129,10 @@ var LevelStore = Object.assign(
EventEmitter.prototype,
AppConstants.StoreSubscribePrototype,
{
getAliasMap: getAliasMap,
addToAliasMap: addToAliasMap,
removeFromAliasMap: removeFromAliasMap,
getSequenceToLevels: function() {
return levelSequences;
},