mirror of https://github.com/Lissy93/dashy.git
🏪 Adds copy_item action to store
This commit is contained in:
parent
9d361142bb
commit
f4053d9bc0
16
src/store.js
16
src/store.js
|
@ -4,6 +4,7 @@ import Vuex from 'vuex';
|
||||||
import Keys from '@/utils/StoreMutations';
|
import Keys from '@/utils/StoreMutations';
|
||||||
import ConfigAccumulator from '@/utils/ConfigAccumalator';
|
import ConfigAccumulator from '@/utils/ConfigAccumalator';
|
||||||
import { componentVisibility } from '@/utils/ConfigHelpers';
|
import { componentVisibility } from '@/utils/ConfigHelpers';
|
||||||
|
import { applyItemId } from '@/utils/MiscHelpers';
|
||||||
import filterUserSections from '@/utils/CheckSectionVisibility';
|
import filterUserSections from '@/utils/CheckSectionVisibility';
|
||||||
|
|
||||||
Vue.use(Vuex);
|
Vue.use(Vuex);
|
||||||
|
@ -18,6 +19,7 @@ const {
|
||||||
UPDATE_PAGE_INFO,
|
UPDATE_PAGE_INFO,
|
||||||
UPDATE_APP_CONFIG,
|
UPDATE_APP_CONFIG,
|
||||||
UPDATE_SECTION,
|
UPDATE_SECTION,
|
||||||
|
COPY_ITEM,
|
||||||
} = Keys;
|
} = Keys;
|
||||||
|
|
||||||
const store = new Vuex.Store({
|
const store = new Vuex.Store({
|
||||||
|
@ -75,7 +77,7 @@ const store = new Vuex.Store({
|
||||||
},
|
},
|
||||||
[UPDATE_ITEM](state, payload) {
|
[UPDATE_ITEM](state, payload) {
|
||||||
const { itemId, newItem } = payload;
|
const { itemId, newItem } = payload;
|
||||||
const newConfig = state.config;
|
const newConfig = { ...state.config };
|
||||||
newConfig.sections.forEach((section, secIndex) => {
|
newConfig.sections.forEach((section, secIndex) => {
|
||||||
section.items.forEach((item, itemIndex) => {
|
section.items.forEach((item, itemIndex) => {
|
||||||
if (item.id === itemId) {
|
if (item.id === itemId) {
|
||||||
|
@ -101,6 +103,18 @@ const store = new Vuex.Store({
|
||||||
newConfig.sections[sectionIndex] = sectionData;
|
newConfig.sections[sectionIndex] = sectionData;
|
||||||
state.config = newConfig;
|
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: {
|
actions: {
|
||||||
/* Called when app first loaded. Reads config and sets state */
|
/* Called when app first loaded. Reads config and sets state */
|
||||||
|
|
Loading…
Reference in New Issue