import { createRouter, createWebHashHistory, } from 'vue-router'; import { getToolboxRoutes, } from '@/assets/js/toolbox-data'; import { updateAppTitle, } from '@/assets/js/utils'; import { ABOUT_MODULE_ENABLED, ABOUT_MODULE_TITLE, MC_CTRL_MODULE_ENABLED, MC_CTRL_MODULE_TITLE, NAV_MODULE_ENABLED, NAV_MODULE_TITLE, SEARCH_MODULE_ENABLED, SEARCH_MODULE_TITLE, TOOLBOX_MODULE_ENABLED, TOOLBOX_MODULE_TITLE, } from '@/config/modules'; import AboutView from '@/views/AboutView/AboutView.vue'; import IndexView from '@/views/IndexView/IndexView.vue'; export const router = createRouter({ history: createWebHashHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'IndexView', component: IndexView, meta: { iconClass: 'mdi mdi-home', showInAside: true, title: '主页', }, }, { path: '/search-view', name: 'SearchView', component: () => import('@/views/SearchView/SearchView.vue'), meta: { iconClass: 'mdi mdi-magnify', showInAside: SEARCH_MODULE_ENABLED, title: SEARCH_MODULE_TITLE, }, }, { path: '/nav-view', name: 'NavView', component: () => import('@/views/NavView/NavView.vue'), meta: { iconClass: 'mdi mdi-compass', showInAside: NAV_MODULE_ENABLED, title: NAV_MODULE_TITLE, }, }, { path: '/toolbox-view', name: 'ToolboxView', component: () => import('@/views/ToolboxView/ToolboxView.vue'), meta: { iconClass: 'mdi mdi-tools', isToolDetail: false, showInAside: TOOLBOX_MODULE_ENABLED, title: TOOLBOX_MODULE_TITLE, }, children: getToolboxRoutes(), }, { path: '/minecraft-ctrl-view', name: 'MinecraftCtrlView', component: () => import('@/views/MinecraftCtrlView/MinecraftCtrlView.vue'), meta: { iconClass: 'mdi mdi-gamepad', showInAside: MC_CTRL_MODULE_ENABLED, title: MC_CTRL_MODULE_TITLE, }, }, { path: '/about-view', name: 'AboutView', component: AboutView, meta: { iconClass: 'mdi mdi-information', showInAside: ABOUT_MODULE_ENABLED, title: ABOUT_MODULE_TITLE, }, }, ], }); router.afterEach((to) => { updateAppTitle(to.meta.title); });