diff --git a/package.json b/package.json index 40ac132..6e00a21 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "register-service-worker": "^1.6.2", "vue": "^2.6.10", "vue-router": "^3.0.3", - "vuex": "^3.0.1" + "vuex": "^3.1.1" }, "devDependencies": { "@vue/cli-plugin-babel": "^3.8.0", diff --git a/src/main.js b/src/main.js index e03c751..580e775 100644 --- a/src/main.js +++ b/src/main.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import App from './App.vue'; import router from './router'; -import store from './store'; +import store from './store/store'; import './registerServiceWorker'; Vue.config.productionTip = false; diff --git a/src/store/modules/FAQs.module.js b/src/store/modules/FAQs.module.js new file mode 100644 index 0000000..8e31d70 --- /dev/null +++ b/src/store/modules/FAQs.module.js @@ -0,0 +1,28 @@ +const FAQsModule = { + namespaced: true, + state: { + FAQs: [], + }, + + mutations: { + ADD_FAQS(state, FAQs) { + state.FAQs = FAQs; + }, + }, + + actions: { + addFAQsAction(context) { + fetch('https://api-dev.codinggarden.community/faqs') + .then(n => n.json()) + .then(json => { + const dataItems = json.map(n => ({ + ...n.attributes, + isOpen: false, + })); + context.commit('ADD_FAQS', dataItems); + }); + }, + }, +}; + +export default FAQsModule; diff --git a/src/store.js b/src/store/store.js similarity index 59% rename from src/store.js rename to src/store/store.js index 505f960..2eef73b 100644 --- a/src/store.js +++ b/src/store/store.js @@ -1,10 +1,11 @@ import Vue from 'vue'; import Vuex from 'vuex'; +import FAQs from './modules/FAQs.module'; Vue.use(Vuex); export default new Vuex.Store({ - state: {}, - mutations: {}, - actions: {}, + modules: { + FAQs, + }, }); diff --git a/src/views/FAQPage/FAQList.vue b/src/views/FAQPage/FAQList.vue index 12d3c61..0012f94 100644 --- a/src/views/FAQPage/FAQList.vue +++ b/src/views/FAQPage/FAQList.vue @@ -1,19 +1,21 @@