Moved localstorage parser to mixin
This commit is contained in:
parent
f87e6d55e9
commit
29ad537aad
2 changed files with 21 additions and 10 deletions
|
|
@ -87,21 +87,15 @@ export default {
|
|||
mounted() {
|
||||
// Propagate localMode settings
|
||||
this.setLocalMode(this.localMode)
|
||||
// Try loading and parsing savedHosts from localStorage
|
||||
if (localStorage.getItem('savedHosts')) {
|
||||
try {
|
||||
this.savedHosts = JSON.parse(localStorage.getItem('savedHosts'));
|
||||
} catch(e) {
|
||||
localStorage.removeItem('savedHosts');
|
||||
}
|
||||
}
|
||||
|
||||
// Try loading savedHosts from localStorage. If null, don't change.
|
||||
this.savedHosts = this.getLocalStorageObj('savedHosts') || this.savedHosts
|
||||
},
|
||||
|
||||
// When savedHosts changes, serialise to JSON and save to localStorage
|
||||
watch: {
|
||||
savedHosts(newSavedHosts) {
|
||||
const parsed = JSON.stringify(this.savedHosts);
|
||||
localStorage.setItem('savedHosts', parsed);
|
||||
this.setLocalStorageObj('savedHosts', this.savedHosts)
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
17
src/main.js
17
src/main.js
|
|
@ -67,6 +67,23 @@ Vue.mixin({
|
|||
}
|
||||
this.$store.dispatch('errorState', errormsg);
|
||||
UIkit.notification({message: `<span uk-icon=\'icon: warning\'></span> ${errormsg}`, status: 'danger'})
|
||||
},
|
||||
|
||||
getLocalStorageObj: function(keyName) {
|
||||
if (localStorage.getItem(keyName)) {
|
||||
try {
|
||||
return JSON.parse(localStorage.getItem(keyName))
|
||||
} catch(e) {
|
||||
console.log("Malformed entry. Removing from localStorage")
|
||||
localStorage.removeItem(keyName)
|
||||
return null
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setLocalStorageObj: function(keyName, object) {
|
||||
const parsed = JSON.stringify(object)
|
||||
localStorage.setItem(keyName, parsed);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue