File: D:/HostingSpaces/SBogers10/shop.komma.nl/resources/js/store/modules/site.js
import { requestThrottleGetters, requestThrottleMutations, requestThrottleState } from "../composables/requestThrottle";
import SiteService from "../../../../vendor/komma/kms/resources/js/global/siteService";
import ErrorHandler from "../../errorHandler";
import Vue from 'vue';
const siteService = new SiteService();
export const siteState = {
...requestThrottleState,
siteLanguages: [],
languagesHavingSites: [],
currentSite: null,
currentSiteLanguage: null
}
export const siteMutations = {
...requestThrottleMutations,
storeSiteLanguages(state, languages) {
Vue.set(state, 'siteLanguages', languages);
},
storeLanguagesHavingSites(state, languages) {
Vue.set(state, 'languagesHavingSites', languages);
// state.languagesHavingSites.splice(0, state.languagesHavingSites.length, languages);
},
storeCurrentSite(state, currentSite) {
state.currentSite = currentSite
},
storeCurrentSiteLanguage(state, language) {
state.currentSiteLanguage = language
},
};
export const siteGetters = {
...requestThrottleGetters,
languagesHavingSites(state) {
return () => {
return state.languagesHavingSites;
}
}
};
export const siteActions = {
loadLanguagesHavingSites({ commit, getters }) {
commit('requesting', 'loadLanguagesHavingSites')
let promise = siteService.languagesHavingSites().then((response) => {
commit('storeLanguagesHavingSites', response.data.data);
return response.data.data;
})
promise.catch(ErrorHandler.logFor('loadLanguagesHavingSites')).finally(() => {
commit('clearRequest', 'loadLanguagesHavingSites')
})
return promise;
},
loadCurrentSite({ commit, getters }) {
commit('requesting', 'loadCurrentSite')
let promise = siteService.currentSite().then((response) => {
commit('storeCurrentSite', response.data.data);
return response.data.data;
})
promise.catch(ErrorHandler.logFor('loadCurrentSite')).finally(() => {
commit('clearRequest', 'loadCurrentSite')
})
return promise;
},
loadCurrentSiteLanguage({ commit, getters }) {
commit('requesting', 'loadCurrentSiteLanguage')
let promise = siteService.currentSiteLanguage().then((response) => {
commit('storeCurrentSiteLanguage', response.data.data);
return response.data.data;
})
promise.catch(ErrorHandler.logFor('loadCurrentSiteLanguage')).finally(() => {
commit('clearRequest', 'loadCurrentSiteLanguage')
})
return promise;
},
loadSiteLanguages({ commit, getters }) {
commit('requesting', 'loadSiteLanguages')
let promise = siteService.siteLanguages().then((response) => {
commit('storeLanguagesHavingSites', response.data.data);
return response.data.data;
})
promise.catch(ErrorHandler.logFor('loadSiteLanguages')).finally(() => {
commit('clearRequest', 'loadSiteLanguages')
})
return promise;
},
};
export default {
namespaced: true,
state: {...siteState},
actions: {...siteActions},
getters: {...siteGetters},
mutations: {...siteMutations}
}