Initial commit

This commit is contained in:
2026-05-26 12:11:14 +07:00
commit 9fdd78e737
117 changed files with 10579 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import { createRouter, createWebHistory } from 'vue-router'
import { useAuthStore } from '../stores/authStore.js'
import LoginPage from '../views/LoginPage.vue'
import RegisterPage from '../views/RegisterPage.vue'
import LandingPage from '../views/LandingPage.vue'
import LibraryPage from '../views/LibraryPage.vue'
import PlaylistPage from '../views/PlaylistPage.vue'
import ProfilePage from '../views/ProfilePage.vue'
import AdminPage from '../views/AdminPage.vue'
const routes = [
{ path: '/', name: 'Login', component: LoginPage, meta: { guest: true } },
{ path: '/register', name: 'Register', component: RegisterPage, meta: { guest: true } },
{ path: '/home', name: 'Home', component: LandingPage, meta: { auth: true } },
{ path: '/library', name: 'Library', component: LibraryPage, meta: { auth: true } },
{ path: '/playlist', name: 'Playlist', component: PlaylistPage, meta: { auth: true } },
{ path: '/playlist/:id', name: 'PlaylistDetail', component: PlaylistPage, meta: { auth: true } },
{ path: '/profile', name: 'Profile', component: ProfilePage, meta: { auth: true } },
{ path: '/admin/tracks', name: 'AdminTracks', component: AdminPage, meta: { auth: true, admin: true } },
]
const router = createRouter({
history: createWebHistory(),
routes,
})
router.beforeEach((to, from, next) => {
const authStore = useAuthStore()
if (to.meta.admin && !authStore.isAdmin) {
return next('/home')
}
if (to.meta.auth && !authStore.isLoggedIn) {
return next('/')
}
if (to.meta.guest && authStore.isLoggedIn) {
return next('/home')
}
next()
})
export default router