|
@@ -0,0 +1,62 @@
|
|
|
+import { JSONAPI } from 'vuejs/api/json-axios'
|
|
|
+import { REST } from 'vuejs/api/rest-axios'
|
|
|
+import { MA } from 'vuejs/api/ma-axios'
|
|
|
+import qs from 'querystring'
|
|
|
+
|
|
|
+export default {
|
|
|
+ namespaced: true,
|
|
|
+
|
|
|
+ // initial state
|
|
|
+ state : {
|
|
|
+ items: [],
|
|
|
+ page: 0,
|
|
|
+ // infinteState will come from vue-infinite-loading plugin
|
|
|
+ // implemented in vuejs/components/Content/Base.vue
|
|
|
+ infiniteLoadingState: null
|
|
|
+ },
|
|
|
+
|
|
|
+ // getters
|
|
|
+ getters : {},
|
|
|
+
|
|
|
+ // mutations
|
|
|
+ mutations : {
|
|
|
+ setItems (state, items) {
|
|
|
+ state.items = state.items.concat(items)
|
|
|
+ },
|
|
|
+ incrementPage(state){
|
|
|
+ state.page += 1;
|
|
|
+ },
|
|
|
+ setInfiniteState(state, infiniteLoadingstate){
|
|
|
+ state.infiniteLoadingState = infiniteLoadingstate
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // actions
|
|
|
+ actions : {
|
|
|
+ getItems({ dispatch, commit, state }){
|
|
|
+ REST.get(`/blabla_rest?_format=json&page=${state.page}`, {})
|
|
|
+ .then(({ data }) => {
|
|
|
+ console.log('blabla REST: data', data)
|
|
|
+ if(data.length){
|
|
|
+ commit('setItems',data)
|
|
|
+ // console.log('items.length', this.items.length);
|
|
|
+ if(state.infiniteLoadingState)
|
|
|
+ state.infiniteLoadingState.loaded()
|
|
|
+ }else{
|
|
|
+ if(state.infiniteLoadingState)
|
|
|
+ state.infiniteLoadingState.complete()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(( error ) => {
|
|
|
+ console.warn('Issue with blabla', error)
|
|
|
+ Promise.reject(error)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ nextPage ({ dispatch, commit, state }, $infiniteLoadingstate) {
|
|
|
+ console.log("Search nextPage", $infiniteLoadingstate);
|
|
|
+ commit('incrementPage')
|
|
|
+ commit('setInfiniteState', $infiniteLoadingstate)
|
|
|
+ dispatch('getItems')
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|