Files
frontend-app-learning/src/data/localStorage.js
Michael Terry 6cdd075243 AA-137: Add first-section celebration (#78)
When a learner completes their first section in a course, throw up
a modal that celebrates that fact and encourages them to share
progress.
2020-06-18 09:27:11 -04:00

52 lines
1.1 KiB
JavaScript

// This file holds some convenience methods for dealing with localStorage.
//
// NOTE: These storage keys are not namespaced. That means that it's shared for the current fully
// qualified domain. Namespacing could be added, but we'll cross that bridge when we need it.
function getLocalStorage(key) {
try {
if (global.localStorage) {
const rawItem = global.localStorage.getItem(key);
if (rawItem) {
return JSON.parse(rawItem);
}
}
} catch (e) {
// If this fails for some reason, just return null.
}
return null;
}
function setLocalStorage(key, value) {
try {
if (global.localStorage) {
global.localStorage.setItem(key, JSON.stringify(value));
}
} catch (e) {
// If this fails, just bail.
}
}
function clearLocalStorage(key) {
try {
if (global.localStorage) {
global.localStorage.removeItem(key);
}
} catch (e) {
// If this fails, just bail.
}
}
function popLocalStorage(key) {
const value = getLocalStorage(key);
clearLocalStorage(key);
return value;
}
export {
clearLocalStorage,
getLocalStorage,
popLocalStorage,
setLocalStorage,
};