mirror of
https://github.com/tenrok/vue-meta.git
synced 2026-05-26 00:34:04 +03:00
fc71e1f1c4
* refactor(examples): run ssr example from server * chore: switch to babel for build buble complains too much * feat: enable loaded callbacks feat: add skip option * examples: add async-callback browser example * examples: fix server * examples(ssr): add reactive script with callback * fix: also skip on ssr * chore: remove unused var * feat: only add mutationobserver if DOM is still loading feat: disconnect mutation observer once DOM has loaded * examples: pass vmid to loadCallback instead of el * feat: also support load callbacks for link/style tags * test: add unit tests for load * test: add load e2e test * chore: fix lint * chore: remove unused files * test: fix e2e load callback test * test: fix attempt * examples: ie9 compatiblity destructuring doesnt work in ie9 * fix: add onload attribute on ssr dont rely on mutationobserver * chore: lint ci conf * refactor: remove loadCallbackAttribute config option test: fix coverage for load * test: improve coverage * fix: only use console when it exists (for ie9) * chore: fix coverage
64 lines
1.3 KiB
JavaScript
64 lines
1.3 KiB
JavaScript
import 'core-js/es/promise'
|
|
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
|
|
Vue.use(Vuex)
|
|
|
|
export default new Vuex.Store({
|
|
// STATE
|
|
state: {
|
|
isLoading: false,
|
|
// its important that we set some defaults for the current post
|
|
// otherwise Vue will complain that properties are `null`
|
|
post: {
|
|
title: '',
|
|
content: '',
|
|
slug: '',
|
|
published: false
|
|
},
|
|
posts: [{
|
|
slug: 'a-sample-blog-post',
|
|
title: 'A Sample Blog Post',
|
|
content: 'This is the blog post content',
|
|
published: true
|
|
}, {
|
|
slug: 'an-unpublished-blog-post',
|
|
title: 'An Unpublished Blog Post',
|
|
content: 'This is the blog post content',
|
|
published: false
|
|
}, {
|
|
slug: 'another-blog-post',
|
|
title: 'Another Blog Post',
|
|
content: 'This is the blog post content',
|
|
published: true
|
|
}]
|
|
},
|
|
|
|
// GETTERS
|
|
getters: {
|
|
post (state) {
|
|
return state.post
|
|
},
|
|
publishedPosts (state) {
|
|
return state.posts.filter(post => post.published)
|
|
},
|
|
publishedPostsCount (state, getters) {
|
|
return getters.publishedPosts.length
|
|
}
|
|
},
|
|
|
|
// MUTATIONS
|
|
mutations: {
|
|
getPost (state, { slug }) {
|
|
state.post = state.posts.find(post => post.slug === slug)
|
|
}
|
|
},
|
|
|
|
// ACTIONS
|
|
actions: {
|
|
getPost ({ commit }, payload) {
|
|
commit('getPost', payload)
|
|
}
|
|
}
|
|
})
|