Rabbi_Gerzi/frontend/rabbi_gerzi/src/router/index.ts
2026-06-13 23:19:30 +03:00

69 lines
1.5 KiB
TypeScript

import { createRouter, createWebHistory } from 'vue-router'
import HomePage from '@/views/HomePage.vue'
import AboutPage from '@/views/AboutPage.vue'
import ContactPage from '@/views/ContactPage.vue'
import LoginPage from '@/views/LoginPage.vue'
import MediaPage from '@/views/MediaPage.vue'
import ElementPage from '@/views/ElementPage.vue'
import AdminElementPage from '@/views/AdminElementPage.vue'
import { useAuthStore } from '@/stores/auth'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomePage,
},
{
path: '/login',
name: 'login',
component: LoginPage,
},
{
path: '/about',
name: 'about',
component: AboutPage,
},
{
path: '/contact',
name: 'contact',
component: ContactPage,
},
{
path: '/media',
name: 'media',
component: MediaPage,
},
{
path: '/element/:id',
name: 'element',
component: ElementPage,
},
{
path: '/admin/element/:id',
name: 'admin-element',
component: AdminElementPage,
},
],
})
router.beforeEach(async (to) => {
if (to.name !== 'admin-element') {
return true
}
const authStore = useAuthStore()
if (!authStore.isAuthenticated) {
await authStore.fetchUser()
}
if (!authStore.isAuthenticated) {
return { name: 'login' }
}
return true
})
export default router