From 2f784cbe29f8c1660b98c807f2852d4fcb1fce8c Mon Sep 17 00:00:00 2001 From: axolotle Date: Fri, 2 Jul 2021 17:07:58 +0200 Subject: [PATCH] add pages store module --- src/store/index.js | 4 +++- src/store/modules/pages.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/store/modules/pages.js diff --git a/src/store/index.js b/src/store/index.js index 1435d4c..09f18a8 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -4,6 +4,7 @@ import Vuex from 'vuex' import nodes from './nodes' import library from './modules/library' import kit from './modules/kit' +import pages from './modules/pages' Vue.use(Vuex) @@ -11,6 +12,7 @@ export default new Vuex.Store({ ...nodes, modules: { library, - kit + kit, + pages } }) diff --git a/src/store/modules/pages.js b/src/store/modules/pages.js new file mode 100644 index 0000000..28298c8 --- /dev/null +++ b/src/store/modules/pages.js @@ -0,0 +1,33 @@ +import api from '@/api' +import { Page } from '@/api/queries' + + +export default { + state: { + welcome: undefined, + intro: undefined, + ids: { + welcome: 1, + intro: 207 + } + }, + + mutations: { + 'SET_PAGE' (state, { slug, page }) { + state[slug] = page + } + }, + + actions: { + async 'QUERY_PAGE' ({ state, commit, dispatch, getters }, slug) { + if (state[slug] !== undefined) return state[slug] + return api.query(Page, { id: state.ids[slug] }).then(data => { + commit('SET_PAGE', { slug, page: data.page }) + return state[slug] + }) + } + }, + + getters: { + } +}