index.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import thread from './modules/thread'
  4. Vue.use(Vuex)
  5. export default new Vuex.Store({
  6. state: {
  7. meta: {
  8. name: '',
  9. categories: []
  10. },
  11. accountTabs: 0,
  12. accountModal: false,
  13. username: ''
  14. },
  15. getters: {
  16. categoriesWithoutAll (state) {
  17. var categories = JSON.parse(JSON.stringify(state.meta.categories));
  18. categories.shift();
  19. categories.unshift({
  20. name: 'Select a category',
  21. disabled: true
  22. });
  23. return categories;
  24. }
  25. },
  26. mutations: {
  27. setAccountTabs (state, index) {
  28. state.accountTabs = index;
  29. },
  30. setSelectOptions (state, payload) {
  31. state.selectOptions[payload.name] = payload.value;
  32. },
  33. setAccountModalState (state, value) {
  34. state.accountModal = value;
  35. },
  36. setUsername (state, value) {
  37. state.username = value
  38. },
  39. setForumName (state, value) {
  40. state.meta.name = value
  41. },
  42. addCategories (state, value) {
  43. if(Array.isArray(value)) {
  44. state.meta.categories = value
  45. } else {
  46. state.meta.categories.push(value)
  47. }
  48. }
  49. },
  50. modules: { thread }
  51. })