import { createRouter, createWebHistory } from 'vue-router' import Register from '../views/Register.vue' import LogIn from '../views/LogIn.vue' import HomeView from '../views/HomeView.vue' import AllBrands from '../views/AllBrands.vue' import AllCustomers from '../views/AllCustomers.vue' import NewCustomer from '../views/NewCustomer.vue' import AllItems from '../views/AllItems.vue' import NewItem from '../views/NewItem.vue' import NewInvoice from '../views/NewInvoice.vue' import EditInvoice from '../views/EditInvoice.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/register', name: 'register', component: Register, meta: { isAuth: false } }, { path: '/login', name: 'log in', component: LogIn, meta: { isAuth: false } }, { path: '/', name: 'home', component: HomeView, meta: { isAuth: true } }, { path: '/brand', name: 'brand', component: AllBrands, meta: { isAuth: true } }, { path: '/customer', name: 'customer', component: AllCustomers, meta: { isAuth: true } }, { path: '/customer/new', name: 'new-customer', component: NewCustomer, meta: { isAuth: true } }, { path: '/item', name: 'item', component: AllItems, meta: { isAuth: true } }, { path: '/item/new', name: 'new-item', component: NewItem, meta: { isAuth: true } }, { path: '/invoice/new', name: 'new-invoice', component: NewInvoice, meta: { isAuth: true } }, { path: '/invoice/edit-draft/:id', name: 'edit-draft', component: EditInvoice, meta: { isAuth: true } }, ] }) router.beforeEach((to, _, next) => { if (to.meta.isAuth && !localStorage.getItem('authToken')) { next('/login?redirected=true') } else { next() } }) export default router