kahuna/public/js/services/preset-label.js (29 lines of code) (raw):

import angular from 'angular'; var presetLabelService = angular.module('kahuna.services.presetLabel', []); presetLabelService.factory('presetLabelService', ['$window', function ($window) { const presetLabelsKey = 'preset-labels'; function getLabels() { return JSON.parse($window.localStorage.getItem(presetLabelsKey)) || []; } function addLabels(newLabels) { const labels = new Set(getLabels()); newLabels.forEach( label => labels.add(label) ); setLabels(labels); } function removeLabel(label) { const labels = new Set(getLabels()); labels.delete(label); setLabels(labels); } function setLabels(updatedLabels) { const labels = Array.from(updatedLabels); $window.localStorage.setItem(presetLabelsKey, JSON.stringify(labels) ); } return { getLabels, addLabels, removeLabel }; }]); export default presetLabelService;