freekake_web/src/router/index.js
2025-10-16 13:43:57 +07:00

59 lines
2.1 KiB
JavaScript

import { createRouter, createWebHistory } from 'vue-router'
import HomePage from '../pages/Home.vue'
import ContentPage from '../pages/Home.vue'
import CharacterPage from '../pages/Character.vue'
import RegistePage from '../pages/Register.vue'
import loginPage from '../pages/Login.vue'
import Entertainemnt from '../pages/Entertainment.vue'
import { useAuthStore } from '@/stores/auth';
import MangasPage from '../pages/Mangas.vue'
import ChaptersPage from '@/pages/Chapters.vue'
import ChapterListPage from '@/pages/ChapterList.vue'
import SynopsisPage from '@/pages/Synopsis.vue'
import MissionPage from '@/pages/MissionPage.vue'
const routes = [
{ path: '/', name: 'home', component: HomePage , meta:{requiresAuth:true}},
{ path: '/content', name: 'content', component: ContentPage, meta:{requiresAuth:true}},
{ path: '/character', name: 'character', component: CharacterPage, meta:{requiresAuth:true}},
{ path: '/register', name: 'register', component: RegistePage,},
{ path: '/login', name:'login', component:loginPage},
{ path: '/entertainment', name:'entertainment', component:Entertainemnt},
{ path: '/entertainment/mangas', name:'mangas', component:MangasPage},
{ path: '/entertainment/manga/:id/chapters', name:'manga', component:ChaptersPage, props:true},
{ path: '/entertainment/manga/:id/chapters/synopsis', name:'manga-sinopsis', component:SynopsisPage,
props: route => ({
id: route.params.id,
synopsis: route.query.synopsis || ''
})
},
{ path: '/entertainment/manga/:manga_id/chapters/:chapter_id/', name:'manga-list', component:ChapterListPage, props:true},
{ path:'/mission/quest/:id/missions', name: 'quest-missions', component:MissionPage}
]
const router = createRouter({
history: createWebHistory(),
routes,
})
router.beforeEach(async(to, from, next) => {
const auth = useAuthStore();
if (!auth.isLoggedIn) {
auth.restoreSession();
}
const isLoggedIn = auth.isLoggedIn;
console.log(isLoggedIn)
if(to.meta.requiresAuth && !isLoggedIn) {
return next('/login');
}
if (to.path === '/login' && isLoggedIn) {
return next('/')
}
return next();
});
export default router