import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ modules: {}, state: { specialContainerClass: '', showModal: '', contentBlockPosition: {}, scrollPosition: 0, filterForSchoolClass: '', currentContentBlock: '', currentRoomEntry: '', parentRoom: null, parentModule: '', objectiveGroupType: '', currentObjectiveGroup: '', parentProject: null, imageUrl: '', infographic: { id: 0, type: '' } }, getters: {}, actions: { setSpecialContainerClass({commit}, payload) { commit('setSpecialContainerClass', payload); }, hideModal({commit, dispatch}) { document.body.classList.remove('no-scroll'); // won't get at the body any other way commit('setModal', false); dispatch('resetModalState'); }, resetModalState({commit}) { commit('setCurrentRoomEntry', ''); commit('setCurrentContentBlock', ''); commit('setContentBlockPosition', {}); commit('setParentRoom', null); commit('setParentModule', ''); commit('setObjectiveGroupType', ''); commit('setCurrentObjectiveGroup', ''); commit('setParentProject', null); commit('setImageUrl', ''); commit('setInfographic', { id: 0, type: '' }); }, resetContentBlockPosition({commit}) { commit('setContentBlockPosition', {}); }, resetCurrentContentBlock({commit}) { commit('setCurrentContentBlock', ''); }, editContentBlock({commit, dispatch}, payload) { commit('setCurrentContentBlock', payload); dispatch('showModal', 'edit-content-block-wizard'); }, addContentBlock({commit, dispatch}, payload) { commit('setContentBlockPosition', payload); dispatch('showModal', 'new-content-block-wizard'); }, addRoomEntry({commit, dispatch}, payload) { commit('setParentRoom', payload); dispatch('showModal', 'new-room-entry-wizard'); }, editRoomEntry({commit, dispatch}, payload) { commit('setCurrentRoomEntry', payload); dispatch('showModal', 'edit-room-entry-wizard'); }, addObjectiveGroup({commit, dispatch}, {module, type}) { commit('setParentModule', module); commit('setObjectiveGroupType', type); dispatch('showModal', 'new-objective-group-wizard'); }, editObjectiveGroup({commit, dispatch}, payload) { commit('setCurrentObjectiveGroup', payload); dispatch('showModal', 'edit-objective-group-wizard'); }, showModal({commit}, payload) { document.body.classList.add('no-scroll'); // won't get at the body any other way commit('setModal', payload); }, setfilterForSchoolClass({commit}, payload) { commit('setfilterForSchoolClass', payload); }, addProjectEntry({commit, dispatch}, payload) { commit('setParentProject', payload); dispatch('showModal', 'new-project-entry-wizard'); }, showFullscreenImage({commit, dispatch}, payload) { commit('setImageUrl', payload); dispatch('showModal', 'fullscreen-image'); }, showFullscreenInfographic({commit, dispatch}, payload) { commit('setInfographic', payload); dispatch('showModal', 'fullscreen-infographic'); }, }, mutations: { setModal(state, payload) { state.showModal = payload; }, setSpecialContainerClass(state, payload) { state.specialContainerClass = payload; }, setScrollPosition(state, payload) { state.scrollPosition = payload; }, setNewContentBlock(state, payload) { state.newContentBlock = payload; }, setContentBlockPosition(state, payload) { state.contentBlockPosition = payload; }, setCurrentContentBlock(state, payload) { state.currentContentBlock = payload; }, setfilterForSchoolClass(state, payload) { state.filterForSchoolClass = payload; }, setParentRoom(state, payload) { state.parentRoom = payload; }, setCurrentRoomEntry(state, payload) { state.currentRoomEntry = payload; }, setParentModule(state, payload) { state.parentModule = payload; }, setObjectiveGroupType(state, payload) { state.objectiveGroupType = payload; }, setCurrentObjectiveGroup(state, payload) { state.currentObjectiveGroup = payload; }, setParentProject(state, payload) { state.parentProject = payload; }, setImageUrl(state, payload) { state.imageUrl = payload; }, setInfographic(state, payload) { state.infographic = payload; } } })