89 lines
2.0 KiB
TypeScript

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