import { createRouter, createWebHistory } from 'vue-router' import HomeView from '../views/HomeView.vue' import ProfileView from '../views/ProfileView.vue' import ChatView from '../views/ChatView.vue' import PairsView from '../views/PairsView.vue' import LoginView from '../views/LoginView.vue' import SurveyView from '../views/SurveyView.vue' import OnboardingView from '../views/OnboardingView.vue' import VerifyView from '../views/VerifyView.vue' import MessagesView from '../views/MessagesView.vue' const routes = [ { path: '/', component: HomeView, name: 'HomeView', meta: { requiresAuth: true, requiresCompleteProfile: false }, }, { path: '/profile/:pid', component: ProfileView, name: 'ProfileView', meta: { requiresAuth: true, requiresCompleteProfile: true }, }, { path: '/pairs', component: PairsView, name: 'PairsView', meta: { requiresAuth: true, requiresCompleteProfile: true }, }, { path: '/pairs/:pid', component: ProfileView, meta: { requiresAuth: true, requiresCompleteProfile: true }, }, { path: '/messages', component: MessagesView, meta: { requiresAuth: true, requiresCompleteProfile: true, props: true, }, }, { path: '/chat/:pid', component: ChatView, meta: { requiresAuth: true, requiresCompleteProfile: true, props: true, }, }, { path: `/survey`, component: SurveyView, name: `SurveyView`, meta: { requiresAuth: true, requiresCompleteProfile: false }, }, // TODO: remove after better implementation is found for verifying email // hash { path: `/onboarding/`, component: OnboardingView, name: `OnboardingView`, meta: { requiresAuth: false, requiresCompleteProfile: false }, }, // We must be able to get to this route BEFORE login to activate the session { path: `/verify/:hashedToken?`, component: VerifyView, name: `VerifyView`, meta: { requiresAuth: false, requiresCompleteProfile: false }, }, { path: `/login`, component: LoginView, name: `LoginView`, meta: { requiresAuth: false, requiresCompleteProfile: false }, }, { path: `/settings`, component: HomeView, name: `SettingsView`, meta: { requiresAuth: true, requiresCompleteProfile: true }, }, { path: `/search`, component: HomeView, name: `SearchView`, meta: { requiresAuth: true, requiresCompleteProfile: true }, }, ] const router = createRouter({ history: createWebHistory(), routes, }) export { router }