-
-
-
-
+
+
+
+
@@ -11,7 +11,7 @@
-
+
diff --git a/src/store/modules/project.js b/src/store/modules/project.js
new file mode 100644
index 0000000..fc14883
--- /dev/null
+++ b/src/store/modules/project.js
@@ -0,0 +1,25 @@
+// https://codeburst.io/dynamic-modules-with-vuex-and-vue-b9c481ca792
+// https://www.brophy.org/post/instance-aware-vuex-modules-1/
+
+// import qs from 'querystring'
+// import { REST } from 'api/rest-axios'
+
+export default {
+ namespaced: true,
+
+ // initial state
+ state: {
+ },
+
+ // getters
+ getters: {
+ },
+
+ // mutations
+ mutations: {
+ },
+
+ // actions
+ actions: {
+ }
+}
diff --git a/src/store/modules/projects.js b/src/store/modules/projects.js
index fe7a77f..33002c4 100644
--- a/src/store/modules/projects.js
+++ b/src/store/modules/projects.js
@@ -1,6 +1,7 @@
// import qs from 'querystring'
// import { REST } from 'api/rest-axios'
import { GRAPHQL } from 'api/graphql-axios'
+import projectMod from 'store/modules/project'
export default {
namespaced: true,
@@ -24,6 +25,19 @@ export default {
setProjects (state, projects) {
// record the retrieved data
state.projects = projects
+ console.log('setProjects', this)
+ // register a new module only if doesn't exist
+ let name
+ projects.forEach((project, i) => {
+ name = `project:${project.id}`
+ if (!(this.state && this.state[name])) {
+ projectMod.state = { ...project }
+ this.registerModule(name, projectMod)
+ } else {
+ // re-use the already existing module
+ console.log(`reusing module poject:${project.id}`)
+ }
+ })
// randomly define building sizes
let totalW = 0
@@ -126,16 +140,16 @@ export default {
// async get authors
getProjects ({ dispatch, commit, state }) {
// GRAPHQL
- let query = `query {
- projects {
- id
- Weight
- Titre
- }
- }`
- GRAPHQL.post('', { query: query })
- .then((resp) => {
- console.log('graphql projects', resp)
+ GRAPHQL.post('', { query: `query {
+ projects {
+ id
+ Weight
+ Titre
+ }
+ }` })
+ .then(({ data: { data: { projects } = null } }) => {
+ console.log('graphql projects', projects)
+ commit('setProjects', projects)
})
.catch((error) => {
console.warn('Issue with getProjects', error)