HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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}
}