index.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. const state = {
  2. selectedCategory: 'ALL',
  3. threads: [
  4. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  5. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  6. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  7. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  8. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'PROGRAMMING', replies: 30},
  9. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  10. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  11. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  12. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  13. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  14. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  15. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'PROGRAMMING', replies: 30},
  16. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  17. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  18. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  19. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  20. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  21. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  22. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'PROGRAMMING', replies: 30},
  23. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  24. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  25. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  26. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'TECHNOLOGY', replies: 30},
  27. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30},
  28. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  29. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'PROGRAMMING', replies: 30},
  30. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'BOOKS', replies: 30},
  31. {title: 'example title', latestPostUser: 'user', latestPostDate: new Date(), category: 'FOOD', replies: 30}
  32. ]
  33. }
  34. const getters = {
  35. filteredThreads (state, getters, rootState) {
  36. var categories = {};
  37. rootState.meta.categories.forEach(category => {
  38. categories[category.value] = category.name;
  39. })
  40. return state.threads.filter(thread => {
  41. return (thread.category === state.selectedCategory) || (state.selectedCategory === 'ALL');
  42. }).map(thread => {
  43. var _thread = Object.assign({}, thread);
  44. _thread.category = categories[thread.category];
  45. return _thread;
  46. });
  47. }
  48. }
  49. const actions = {}
  50. const mutations = {
  51. selectCategory (state, category) {
  52. state.selectedCategory = category;
  53. }
  54. }
  55. export default {
  56. state,
  57. getters,
  58. actions,
  59. mutations
  60. }