routes.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import Home from '@/pages/Home'
  2. import TextOptions from '@/pages/_partials/TextOptions'
  3. export default [
  4. {
  5. name: 'home',
  6. path: '/',
  7. component: Home
  8. },
  9. {
  10. name: 'library',
  11. path: '/library',
  12. components: {
  13. default: () => import(/* webpackChunkName: "library" */ '@/pages/Library'),
  14. options: TextOptions
  15. },
  16. props: {
  17. default: ({ query }) => ({
  18. mode: query.mode || 'tree-map',
  19. // In case of a reload or direct link, vue-router doesn't turn the query string into an array.
  20. texts: query.texts && query.texts.length && typeof query.texts[0] === 'string'
  21. ? query.texts.map(text => text.split(',').map(id => parseInt(id)))
  22. : query.texts
  23. }),
  24. options: ({ query }) => ({
  25. show: !('texts' in query)
  26. })
  27. }
  28. },
  29. {
  30. name: 'kit',
  31. path: '/kit',
  32. component: () => import(/* webpackChunkName: "kit" */ '@/pages/Kit')
  33. },
  34. {
  35. name: 'gallery',
  36. path: '/gallery',
  37. component: () => import(/* webpackChunkName: "gallery" */ '@/pages/Gallery')
  38. },
  39. {
  40. name: 'blog',
  41. path: '/blog',
  42. component: () => import(/* webpackChunkName: "blog" */ '@/pages/Blog')
  43. },
  44. {
  45. name: 'notfound',
  46. path: '/404',
  47. alias: '*',
  48. component: () => import(/* webpackChunkName: "404" */ '@/pages/NotFound.vue')
  49. }
  50. ]