Cleaned store mutations and actions

This commit is contained in:
Joel Collins 2019-05-10 09:58:01 +01:00
parent 363dfa87a3
commit a5c8b3cc4e
2 changed files with 23 additions and 37 deletions

View file

@ -65,7 +65,7 @@ Vue.mixin({
errormsg = `${error.message}` errormsg = `${error.message}`
console.log(errormsg) console.log(errormsg)
} }
this.$store.dispatch('errorState', errormsg); this.$store.commit('setError', errormsg);
UIkit.notification({message: `<span uk-icon=\'icon: warning\'></span> ${errormsg}`, status: 'danger'}) UIkit.notification({message: `<span uk-icon=\'icon: warning\'></span> ${errormsg}`, status: 'danger'})
}, },

View file

@ -28,15 +28,9 @@ export default new Vuex.Store({
state.port = port; state.port = port;
state.apiVer = apiVer; state.apiVer = apiVer;
}, },
changeAvailable(state, available) {
state.available = available
},
changeWaiting(state, waiting) { changeWaiting(state, waiting) {
state.waiting = waiting state.waiting = waiting
}, },
commitError(state, errorString) {
state.error = errorString;
},
commitConfig(state, configData) { commitConfig(state, configData) {
state.apiConfig = configData; state.apiConfig = configData;
}, },
@ -45,15 +39,31 @@ export default new Vuex.Store({
}, },
changeSetting(state, [key, value]) { changeSetting(state, [key, value]) {
state.globalSettings[key] = value; state.globalSettings[key] = value;
},
resetState(state) {
state.waiting = false
state.available = true
state.error = null
state.apiConfig = {}
state.apiState = {}
},
setConnected(state) {
state.waiting = false
state.available = true
},
setError(state, msg) {
state.waiting = false
state.available = false
state.error = msg
} }
}, },
actions: { actions: {
firstConnect(context) { firstConnect(context) {
// Reset the state when reconnecting starts // Reset the state when reconnecting starts
context.dispatch('resetState') context.commit('resetState')
// Mark as loading // Mark as loading
context.dispatch('waitingState') context.commit('changeWaiting', true)
var sendRequest = function(resolve, reject) { var sendRequest = function(resolve, reject) {
// Do requests // Do requests
@ -72,13 +82,13 @@ export default new Vuex.Store({
}, },
updateConfig(context, uri=`${context.getters.uri}/config`) { updateConfig(context, uri=`${context.getters.uri}/config`) {
context.dispatch('waitingState') context.commit('changeWaiting', true)
var sendRequest = function(resolve, reject) { var sendRequest = function(resolve, reject) {
axios.get(uri) axios.get(uri)
.then(response => { .then(response => {
context.commit('commitConfig', response.data) context.commit('commitConfig', response.data)
context.dispatch('connectedState') context.commit('setConnected')
resolve() resolve()
}) })
.catch(error => { .catch(error => {
@ -89,13 +99,13 @@ export default new Vuex.Store({
}, },
updateState(context, uri=`${context.getters.uri}/state`) { updateState(context, uri=`${context.getters.uri}/state`) {
context.dispatch('waitingState') context.commit('changeWaiting', true)
var sendRequest = function(resolve, reject) { var sendRequest = function(resolve, reject) {
axios.get(uri) axios.get(uri)
.then(response => { .then(response => {
context.commit('commitState', response.data) context.commit('commitState', response.data)
context.dispatch('connectedState') context.commit('setConnected')
resolve() resolve()
}) })
.catch(error => { .catch(error => {
@ -137,30 +147,6 @@ export default new Vuex.Store({
return new Promise(checkCondition); return new Promise(checkCondition);
},
resetState(context) {
context.commit('changeWaiting', false)
context.commit('changeAvailable', true)
context.commit('commitError', null)
context.commit('commitConfig', {})
context.commit('commitState', {})
},
waitingState(context) {
context.commit('changeWaiting', true)
},
connectedState(context) {
context.commit('changeWaiting', false)
context.commit('changeAvailable', true)
},
errorState(context, msg) {
context.commit('changeWaiting', false)
context.commit('changeAvailable', false)
context.commit('commitError', msg)
// TODO: Re-implement error notifications as mixins
} }
}, },