X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/31c28be57a53bc543e34bdf113ecd64e8ee11ed1..refs/heads/development:/resources/js/markdown/settings.js diff --git a/resources/js/markdown/settings.js b/resources/js/markdown/settings.js deleted file mode 100644 index 62aab82e9..000000000 --- a/resources/js/markdown/settings.js +++ /dev/null @@ -1,62 +0,0 @@ -export class Settings { - - constructor(settingInputs) { - this.settingMap = { - scrollSync: true, - showPreview: true, - editorWidth: 50, - }; - this.changeListeners = {}; - this.loadFromLocalStorage(); - this.applyToInputs(settingInputs); - this.listenToInputChanges(settingInputs); - } - - applyToInputs(inputs) { - for (const input of inputs) { - const name = input.getAttribute('name').replace('md-', ''); - input.checked = this.settingMap[name]; - } - } - - listenToInputChanges(inputs) { - for (const input of inputs) { - input.addEventListener('change', event => { - const name = input.getAttribute('name').replace('md-', ''); - this.set(name, input.checked); - }); - } - } - - loadFromLocalStorage() { - const lsValString = window.localStorage.getItem('md-editor-settings'); - if (!lsValString) { - return; - } - - const lsVals = JSON.parse(lsValString); - for (const [key, value] of Object.entries(lsVals)) { - if (value !== null && this.settingMap[key] !== undefined) { - this.settingMap[key] = value; - } - } - } - - set(key, value) { - this.settingMap[key] = value; - window.localStorage.setItem('md-editor-settings', JSON.stringify(this.settingMap)); - for (const listener of (this.changeListeners[key] || [])) { - listener(value); - } - } - - get(key) { - return this.settingMap[key] || null; - } - - onChange(key, callback) { - const listeners = this.changeListeners[key] || []; - listeners.push(callback); - this.changeListeners[key] = listeners; - } -} \ No newline at end of file