Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import HomeView from '../views/HomeView.vue'
  3. import ProfileView from '../views/ProfileView.vue'
  4. import ChatView from '../views/ChatView.vue'
  5. import PairsView from '../views/PairsView.vue'
  6. import LoginView from '../views/LoginView.vue'
  7. import SurveyView from '../views/SurveyView.vue'
  8. import OnboardingView from '../views/OnboardingView.vue'
  9. import VerifyView from '../views/VerifyView.vue'
  10. import MessagesView from '../views/MessagesView.vue'
  11. const routes = [
  12. {
  13. path: '/',
  14. component: HomeView,
  15. name: 'HomeView',
  16. meta: { requiresAuth: true, requiresCompleteProfile: true },
  17. },
  18. {
  19. path: '/profile/:pid',
  20. component: ProfileView,
  21. name: 'ProfileView',
  22. meta: { requiresAuth: true, requiresCompleteProfile: true },
  23. },
  24. {
  25. path: '/pairs',
  26. component: PairsView,
  27. name: 'PairsView',
  28. meta: { requiresAuth: true, requiresCompleteProfile: true },
  29. },
  30. {
  31. path: '/pairs/:pid',
  32. component: ProfileView,
  33. meta: { requiresAuth: true, requiresCompleteProfile: true },
  34. },
  35. {
  36. path: '/messages',
  37. component: MessagesView,
  38. meta: {
  39. requiresAuth: true,
  40. requiresCompleteProfile: true,
  41. props: true,
  42. },
  43. },
  44. {
  45. path: '/chat/:pid',
  46. component: ChatView,
  47. meta: {
  48. requiresAuth: true,
  49. requiresCompleteProfile: true,
  50. props: true,
  51. },
  52. },
  53. {
  54. path: `/survey`,
  55. component: SurveyView,
  56. name: `SurveyView`,
  57. meta: { requiresAuth: true, requiresCompleteProfile: false },
  58. },
  59. // TODO: remove after better implementation is found for verifying email
  60. // hash
  61. {
  62. path: `/onboarding/:hash?`,
  63. component: OnboardingView,
  64. name: `OnboardingView`,
  65. meta: { requiresAuth: true, requiresCompleteProfile: false },
  66. },
  67. {
  68. path: `/verify/:email?`,
  69. component: VerifyView,
  70. name: `VerifyView`,
  71. meta: { requiresAuth: true, requiresCompleteProfile: false },
  72. },
  73. {
  74. path: `/login`,
  75. component: LoginView,
  76. name: `LoginView`,
  77. meta: { requiresAuth: false, requiresCompleteProfile: false },
  78. },
  79. {
  80. path: `/settings`,
  81. component: HomeView,
  82. name: `SettingsView`,
  83. meta: { requiresAuth: true, requiresCompleteProfile: true },
  84. },
  85. {
  86. path: `/search`,
  87. component: HomeView,
  88. name: `SearchView`,
  89. meta: { requiresAuth: true, requiresCompleteProfile: true },
  90. },
  91. ]
  92. const router = createRouter({
  93. history: createWebHistory(),
  94. routes,
  95. })
  96. export { router }