client/settings: Cache calls to settings.get()
This commit is contained in:
parent
7b236b02c9
commit
e0fc790822
2 changed files with 22 additions and 14 deletions
|
@ -20,19 +20,12 @@ const defaultSettings = {
|
|||
};
|
||||
|
||||
class Settings extends events.EventTarget {
|
||||
save(newSettings, silent) {
|
||||
newSettings = Object.assign(this.get(), newSettings);
|
||||
localStorage.setItem('settings', JSON.stringify(newSettings));
|
||||
if (silent !== true) {
|
||||
this.dispatchEvent(new CustomEvent('change', {
|
||||
detail: {
|
||||
settings: this.get(),
|
||||
},
|
||||
}));
|
||||
}
|
||||
constructor() {
|
||||
super();
|
||||
this.cache = this._getFromLocalStorage();
|
||||
}
|
||||
|
||||
get() {
|
||||
_getFromLocalStorage() {
|
||||
let ret = Object.assign({}, defaultSettings);
|
||||
try {
|
||||
Object.assign(ret, JSON.parse(localStorage.getItem('settings')));
|
||||
|
@ -40,6 +33,23 @@ class Settings extends events.EventTarget {
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
save(newSettings, silent) {
|
||||
newSettings = Object.assign(this.cache, newSettings);
|
||||
localStorage.setItem('settings', JSON.stringify(newSettings));
|
||||
this.cache = this._getFromLocalStorage();
|
||||
if (silent !== true) {
|
||||
this.dispatchEvent(new CustomEvent('change', {
|
||||
detail: {
|
||||
settings: this.cache,
|
||||
},
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
get() {
|
||||
return this.cache;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = new Settings();
|
||||
|
|
|
@ -4,8 +4,6 @@ const markdown = require('./markdown.js');
|
|||
const uri = require('./uri.js');
|
||||
const settings = require('../models/settings.js');
|
||||
|
||||
const tagUnderscoresAsSpaces = settings.get().tagUnderscoresAsSpaces;
|
||||
|
||||
function decamelize(str, sep) {
|
||||
sep = sep === undefined ? '-' : sep;
|
||||
return str
|
||||
|
@ -201,7 +199,7 @@ function dataURItoBlob(dataURI) {
|
|||
}
|
||||
|
||||
function getPrettyTagName(tag) {
|
||||
if (tagUnderscoresAsSpaces) {
|
||||
if (settings.get().tagUnderscoresAsSpaces) {
|
||||
return tag.replace(/_/g, " ");
|
||||
}
|
||||
return tag;
|
||||
|
|
Loading…
Reference in a new issue