add gallery store
This commit is contained in:
@@ -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
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user