import {createRouter, createWebHistory} from 'vue-router'; import Home from '@/views/Home.vue'; import Product from '@/views/Product.vue'; import Checkout from '@/views/Checkout.vue'; import Login from '@/views/Login.vue'; import Register from '@/views/Register.vue'; import Orders from '@/views/Orders'; import store from '@/store/index'; const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/product/:id', name: 'Product', component: Product }, { path: '/checkout', name: 'Checkout', component: Checkout }, { path: '/login', name: 'Login', component: Login, meta: { guest: true } }, { path: '/register', name: 'Register', component: Register, meta: { guest: true } }, { path: '/orders', name: 'Orders', component: Orders, meta: { auth: true } } ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes }); router.beforeEach((to, from) => { if (to.matched.some(record => record.meta.guest) && store.getters.isLoggedIn) return false; if (to.matched.some(record => record.meta.admin) && !store.getters.isAdmin) return false; if (to.matched.some(record => record.meta.auth) && !store.getters.isLoggedIn) { from.params.nextUrl = to.fullPath; return '/login'; } return true; }); export default router;