pages.js 870 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import api from '@/api'
  2. import { Page } from '@/api/queries'
  3. export default {
  4. state: {
  5. welcome: undefined,
  6. intro: undefined,
  7. kit: undefined,
  8. ids: {
  9. welcome: 263,
  10. intro: 264,
  11. kit: 265
  12. },
  13. visited: localStorage.getItem('visited') === 'true'
  14. },
  15. mutations: {
  16. 'SET_PAGE' (state, { slug, page }) {
  17. state[slug] = page
  18. },
  19. 'SET_VISITED' (state, visited) {
  20. state.visited = visited
  21. localStorage.setItem('visited', visited)
  22. }
  23. },
  24. actions: {
  25. async 'QUERY_PAGE' ({ state, commit, dispatch, getters }, slug) {
  26. if (state[slug] !== undefined) return state[slug]
  27. return api.query(Page, { id: state.ids[slug] }).then(data => {
  28. commit('SET_PAGE', { slug, page: data.page })
  29. return state[slug]
  30. })
  31. }
  32. },
  33. getters: {
  34. visited: state => state.visited
  35. }
  36. }