🏪 Adds copy_item action to store

This commit is contained in:
Alicia Sykes 2021-10-24 17:21:17 +01:00
parent 9d361142bb
commit f4053d9bc0
1 changed files with 15 additions and 1 deletions

View File

@ -4,6 +4,7 @@ import Vuex from 'vuex';
import Keys from '@/utils/StoreMutations';
import ConfigAccumulator from '@/utils/ConfigAccumalator';
import { componentVisibility } from '@/utils/ConfigHelpers';
import { applyItemId } from '@/utils/MiscHelpers';
import filterUserSections from '@/utils/CheckSectionVisibility';
Vue.use(Vuex);
@ -18,6 +19,7 @@ const {
UPDATE_PAGE_INFO,
UPDATE_APP_CONFIG,
UPDATE_SECTION,
COPY_ITEM,
} = Keys;
const store = new Vuex.Store({
@ -75,7 +77,7 @@ const store = new Vuex.Store({
},
[UPDATE_ITEM](state, payload) {
const { itemId, newItem } = payload;
const newConfig = state.config;
const newConfig = { ...state.config };
newConfig.sections.forEach((section, secIndex) => {
section.items.forEach((item, itemIndex) => {
if (item.id === itemId) {
@ -101,6 +103,18 @@ const store = new Vuex.Store({
newConfig.sections[sectionIndex] = sectionData;
state.config = newConfig;
},
[COPY_ITEM](state, payload) {
const { item, toSection } = payload;
const config = { ...state.config };
const newItem = { ...item };
config.sections.forEach((section) => {
if (section.name === toSection) {
section.items.push(newItem);
}
});
config.sections = applyItemId(config.sections);
state.config = config;
},
},
actions: {
/* Called when app first loaded. Reads config and sets state */