import { createRouter, createWebHashHistory } from 'vue-router' import AdminLayout from '~/layouts/AdminLayout.vue' import LoginPage from '~/pages/login.vue' import DashboardPage from '~/pages/dashboard.vue' import SpotsPage from '~/pages/spots.vue' import EventsPage from '~/pages/events.vue' import ShootingPage from '~/pages/shooting.vue' import ModuleDesignPage from '~/pages/module-design.vue' import NavConfigsPage from '~/pages/nav-configs.vue' import PromotionsPage from '~/pages/promotions.vue' import UsersPage from '~/pages/users.vue' import MembershipPage from '~/pages/membership.vue' import OpsPage from '~/pages/ops.vue' import { getAdminToken } from '~/composables/admin-auth' const router = createRouter({ history: createWebHashHistory(), routes: [ { path: '/', component: AdminLayout, children: [ { path: '', redirect: '/dashboard' }, { path: 'dashboard', component: DashboardPage }, { path: 'spots', component: SpotsPage }, { path: 'events', component: EventsPage }, { path: 'shooting', component: ShootingPage }, { path: 'module-design', component: ModuleDesignPage }, { path: 'nav-configs', component: NavConfigsPage }, { path: 'promotions', component: PromotionsPage }, { path: 'users', component: UsersPage }, { path: 'membership', component: MembershipPage }, { path: 'ops', component: OpsPage }, ], }, { path: '/login', component: LoginPage }, ], }) router.beforeEach((to, _from, next) => { if (to.path === '/login') { next() return } if (!getAdminToken()) { next('/login') return } next() }) export default router