| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import api from '../../utils/api'
-
- // initial state
- const state = {
- all: {},
- loaded: false,
- page: null,
- }
-
- // getters
- const getters = {
- allPages: state => state.all,
- allPagesLoaded: state => state.loaded,
- page: state => id => {
- let field = typeof id === 'number' ? 'id' : 'slug'
- let page = state.all.filter(page => page[field] === id)
- return (page[0]) ? page[0] : false
- },
- pageContent: state => id => {
- let field = typeof id === 'number' ? 'id' : 'slug'
- let page = state.all.filter(page => page[field] === id)
-
- return (page[0]) ? page[0].content.rendered : false
- },
- somePages: state => limit => {
- if(state.all.length < 1) return false
-
- let all = [...state.all]
-
- return all.splice(0, Math.min(limit, state.all.length))
- },
- }
-
- // actions
- const actions = {
- getAllPages({ commit }, sortType) {
- api.getByType('pages', sortType, pages => {
- commit('STORE_FETCHED_PAGES', { pages })
- commit('PAGES_LOADED', true)
- })
- }
- }
-
- // mutations
- const mutations = {
- STORE_FETCHED_PAGES(state, { pages }) {
- state.all = pages
- },
- PAGES_LOADED(state, val) { state.loaded = val },
- }
-
- export default { state, getters, actions, mutations }
|