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-es3' export default { namespaced: true, // initial state state: { contenttype: null, 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 }) { // if(!state.contenttype){ // REST.get('/entity/node_type/article?_format=json', {}) // .then(({ data }) => { // console.log('blabla REST contenttype : data', data); // }) // .catch(( error ) => { // console.warn('Issue with blabla contenttype', error) // Promise.reject(error) // }) // } return 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 getitems', error) Promise.reject(error) }) }, nextPage ({ dispatch, commit, state }, $infiniteLoadingstate) { console.log('blabla nextPage', $infiniteLoadingstate) commit('incrementPage') commit('setInfiniteState', $infiniteLoadingstate) dispatch('getItems') }, getItemIndex ({ dispatch, commit, state }, uuid) { return state.items.findIndex((e) => { return e.uuid == uuid }) }, getPrevNextItems ({ dispatch, commit, state }, index) { return { prev: state.items[index - 1], next: state.items[index + 1] } } } }