public/src/js/utils/visited-article-storage.js (32 lines of code) (raw):
import * as storage from 'utils/local-storage';
import * as vars from 'modules/vars';
import _ from 'underscore';
let visitedArticleStorage = {};
function createStorage() {
visitedArticleStorage.storage = storage.bind('gu.front-tools.visitedArticles.' + vars.model.identity.email);
}
function isArticleVisited(articleId) {
if (!visitedArticleStorage.storage) {
createStorage();
}
var visitedItems = visitedArticleStorage.storage.getItem();
return _.some(visitedItems, function(visitedItem) {
return visitedItem === articleId;
});
}
function addArticleToStorage(articleId) {
if (!visitedArticleStorage.storage) {
createStorage();
}
var item = visitedArticleStorage.storage.getItem([]);
if (!_.some(item, function (itemElement) {
return itemElement === articleId;
})) {
item.unshift(articleId);
item = item.slice(0, 500);
visitedArticleStorage.storage.setItem(item);
}
}
visitedArticleStorage.isArticleVisited = isArticleVisited;
visitedArticleStorage.addArticleToStorage = addArticleToStorage;
export default visitedArticleStorage;