Skip to content
Snippets Groups Projects
router.ts 1.58 KiB
Newer Older
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
const routes: RouteRecordRaw[] = [
  { path: '/', redirect: '/shows' },
  { path: '/shows', name: 'shows', component: () => import('@/Pages/MyShows.vue') },
  {
    path: '/shows/:showId',
    name: 'show',
    component: () => import('@/Pages/Show.vue'),
    redirect: (to) => ({ path: `/shows/${to.params.showId}/episodes` }),
    children: [
      {
        path: 'basic-data',
        name: 'show-basic-data',
        component: () => import('@/Pages/ShowBasicData.vue'),
      },
      {
        path: 'episodes',
        name: 'show-episodes',
        component: () => import('@/Pages/ShowEpisodes.vue'),
      },
      {
        path: 'episodes/:episodeId',
        name: 'show-episode',
        component: () => import('@/Pages/ShowEpisode.vue'),
        redirect: (to) => ({
          path: `/shows/${to.params.showId}/episodes/${to.params.episodeId}/details`,
        }),
        children: [
          {
            path: 'details',
            name: 'show-episode-details',
            component: () => import('@/Pages/ShowEpisodeDetails.vue'),
          },
        ],
      },
    ],
  },
  { path: '/calendar', name: 'calendar', component: () => import('@/Pages/EmissionManager.vue') },
  { path: '/help', name: 'help', component: () => import('@/Pages/Help.vue') },
  { path: '/settings', name: 'settings', component: () => import('@/Pages/Settings.vue') },
  { path: '/credits', name: 'credits', component: () => import('@/Pages/Credits.vue') },
]

export default createRouter({
Konrad Mohrfeldt's avatar
Konrad Mohrfeldt committed
  history: createWebHistory(),
  routes,