import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' import Trade from '../views/Trade.vue' import Login from '../views/Login.vue' import TradeDetail from '../views/TradeDetail.vue' import EventMarkets from '../views/EventMarkets.vue' import Wallet from '../views/Wallet.vue' import Search from '../views/Search.vue' import Profile from '../views/Profile.vue' import MemberCenter from '../views/MemberCenter.vue' import ApiKey from '../views/ApiKey.vue' const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: '/', name: 'home', component: Home, }, { path: '/search', name: 'search', component: Search, }, { path: '/trade', name: 'trade', component: Trade, }, { path: '/login', name: 'login', component: Login, }, { path: '/trade-detail/:id', name: 'trade-detail', component: TradeDetail, }, { path: '/event/:id/markets', name: 'event-markets', component: EventMarkets, }, { path: '/wallet', name: 'wallet', component: Wallet, }, { path: '/profile', name: 'profile', component: Profile, }, { path: '/member-center', name: 'member-center', component: MemberCenter, }, { path: '/api-key', name: 'api-key', component: ApiKey, }, ], scrollBehavior(to, from, savedPosition) { const el = document.querySelector('[data-main-scroll]') if (el) { if (savedPosition && from?.name) { el.scrollTo({ top: savedPosition.top, left: savedPosition.left ?? 0 }) return } if (to.hash) { const target = document.querySelector(to.hash) if (target) { const top = (target as HTMLElement).offsetTop el.scrollTo({ top }) return } } el.scrollTo({ top: 0, left: 0 }) } return { top: 0 } }, }) export default router