83 lines
2.1 KiB
TypeScript
83 lines
2.1 KiB
TypeScript
import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'
|
|
|
|
const HomeView = () => import('../views/HomeView.vue')
|
|
|
|
export const routes: RouteRecordRaw[] = [
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: HomeView
|
|
},
|
|
{
|
|
path: '/teams/:seasonNumber/:teamAbbreviation',
|
|
name: 'team',
|
|
component: () => import('../views/TeamView.vue'),
|
|
props: castTeamsRouteParams
|
|
},
|
|
{
|
|
path: '/managers/:managerName',
|
|
name: 'manager',
|
|
component: () => import('../views/ManagerView.vue'),
|
|
props: true
|
|
},
|
|
{
|
|
path: '/players/:seasonNumber/:playerName',
|
|
name: 'player',
|
|
component: () => import('../views/PlayerView.vue'),
|
|
props: castPlayersRouteParams
|
|
},
|
|
{
|
|
path: '/standings',
|
|
name: 'standings',
|
|
component: () => import('../views/StandingsView.vue')
|
|
},
|
|
{
|
|
path: '/rules',
|
|
name: 'rules',
|
|
component: () => import('../views/RulesView.vue')
|
|
},
|
|
{
|
|
path: '/schedule/:seasonNumber?/:weekNumber?',
|
|
name: 'schedule',
|
|
component: () => import('../views/ScheduleView.vue'),
|
|
props: castScheduleRouteParams
|
|
},
|
|
]
|
|
|
|
function castTeamsRouteParams(route: any) {
|
|
return {
|
|
teamAbbreviation: route.params.teamAbbreviation,
|
|
seasonNumber: Number(route.params.seasonNumber)
|
|
}
|
|
}
|
|
|
|
function castPlayersRouteParams(route: any) {
|
|
return {
|
|
playerName: route.params.playerName,
|
|
seasonNumber: Number(route.params.seasonNumber)
|
|
}
|
|
}
|
|
|
|
function castScheduleRouteParams(route: any) {
|
|
return {
|
|
seasonNumber: Number.isNaN(Number.parseInt(route.params.seasonNumber)) ? undefined : Number(route.params.seasonNumber),
|
|
weekNumber: Number.isNaN(Number.parseInt(route.params.weekNumber)) ? undefined : Number(route.params.weekNumber)
|
|
}
|
|
}
|
|
|
|
export const router = createRouter({
|
|
history: createWebHistory(), //import.meta.env.BASE_URL),
|
|
routes,
|
|
})
|
|
|
|
// export function routerPush (name: AppRouteNames, params?: RouteParams): ReturnType<typeof router.push> {
|
|
// return params !== undefined
|
|
// ? router.push({
|
|
// name,
|
|
// params,
|
|
// })
|
|
// : router.push({ name })
|
|
// }
|
|
|
|
export default router
|