import Vue from 'vue'; import VueRouter from 'vue-router'; import Home from '../components/home/home.vue'; import Release from '../components/releases/release.vue'; import Site from '../components/sites/site.vue'; import Network from '../components/networks/network.vue'; import Networks from '../components/networks/networks.vue'; import Actor from '../components/actors/actor.vue'; import Actors from '../components/actors/actors.vue'; import Tag from '../components/tags/tag.vue'; import Tags from '../components/tags/tags.vue'; import Search from '../components/search/search.vue'; import NotFound from '../components/errors/404.vue'; Vue.use(VueRouter); const routes = [ { path: '/', redirect: { name: 'latest', }, }, { path: '/home', redirect: { name: 'latest', }, }, { path: '/latest', component: Home, name: 'latest', }, { path: '/upcoming', component: Home, name: 'upcoming', }, { path: '/new', component: Home, name: 'new', }, { path: '/scene/:releaseId/:releaseSlug?', component: Release, name: 'scene', }, { path: '/movie/:releaseId/:releaseSlug?', component: Release, name: 'movie', }, { path: '/actor/:actorSlug', name: 'actor', redirect: from => ({ name: 'actorRange', params: { ...from.params, range: 'latest', }, }), }, { path: '/actor/:actorSlug/:range', component: Actor, name: 'actorRange', }, { path: '/site/:siteSlug', component: Site, name: 'site', redirect: from => ({ name: 'siteRange', params: { ...from.params, range: 'latest', }, }), }, { path: '/site/:siteSlug/:range', component: Site, name: 'siteRange', }, { path: '/network/:networkSlug', component: Network, name: 'network', redirect: from => ({ name: 'networkRange', params: { ...from.params, range: 'latest', }, }), }, { path: '/network/:networkSlug/:range', component: Network, name: 'networkRange', }, { path: '/tag/:tagSlug', component: Tag, name: 'tag', redirect: from => ({ name: 'tagRange', params: { ...from.params, range: 'latest', }, }), }, { path: '/tag/:tagSlug/:range', component: Tag, name: 'tagRange', }, { path: '/actors/:gender?/:letter?', component: Actors, name: 'actors', }, { path: '/networks', component: Networks, name: 'networks', }, { path: '/tags', component: Tags, name: 'tags', }, { path: '/search', component: Search, name: 'search', }, { path: '*', component: NotFound, }, ]; const router = new VueRouter({ mode: 'history', routes, }); export default router;