add gallery store

This commit is contained in:
axolotle
2021-07-08 17:54:15 +02:00
parent d3708d2e33
commit 966927da4c
2 changed files with 42 additions and 0 deletions
+2
View File
@@ -4,6 +4,7 @@ import Vuex from 'vuex'
import nodes from './nodes'
import library from './modules/library'
import kit from './modules/kit'
import gallery from './modules/gallery'
import pages from './modules/pages'
Vue.use(Vuex)
@@ -13,6 +14,7 @@ export default new Vuex.Store({
modules: {
library,
kit,
gallery,
pages
}
})
+40
View File
@@ -0,0 +1,40 @@
export default {
state: {
creation: undefined
},
mutations: {
'SET_CREATION' (state, id) {
state.creation = id
}
},
actions: {
async 'INIT_GALLERY' ({ state, commit, dispatch, getters }) {
const ids = await dispatch('GET_ALL_NODES_IDS', { variant: 'creation', dataLevel: 'full' })
dispatch('OPEN_CREATION', ids[ids.length - 1])
return dispatch('GET_NODES', { ids, dataLevel: 'full' })
},
async 'OPEN_CREATION' ({ state, commit, dispatch }, id) {
commit('SET_CREATION', id)
commit('ADD_HISTORY_ENTRIES', [id])
return dispatch('GET_NODE', { id, dataLevel: 'full' })
}
},
getters: {
creations: (state, getters, rootState) => {
const ids = rootState.ids.creation
if (ids === undefined) return
const nodes = ids.map(id => rootState.nodes[id])
if (nodes.some(node => node === undefined)) return
return nodes
},
creation: (state, getters, rootState) => {
if (state.creation === undefined || state.creation === null) return state.creation
return rootState.nodes[state.creation]
}
}
}