deemix-webui/src/router.js

124 lines
2.3 KiB
JavaScript
Raw Normal View History

import Vue from 'vue'
import VueRouter from 'vue-router'
2020-07-28 21:39:44 +02:00
import { socket } from '@/utils/socket'
import EventBus from '@/utils/EventBus'
2020-07-28 21:39:44 +02:00
import ArtistTab from '@components/ArtistTab.vue'
import TracklistTab from '@components/TracklistTab.vue'
import TheHomeTab from '@components/TheHomeTab.vue'
import TheChartsTab from '@components/TheChartsTab.vue'
import TheFavoritesTab from '@components/TheFavoritesTab.vue'
import TheErrorsTab from '@components/TheErrorsTab.vue'
import TheLinkAnalyzerTab from '@components/TheLinkAnalyzerTab.vue'
import TheAboutTab from '@components/TheAboutTab.vue'
import TheSettingsTab from '@components/TheSettingsTab.vue'
import TheMainSearch from '@components/TheMainSearch.vue'
Vue.use(VueRouter)
const routes = [
{
2020-07-28 21:39:44 +02:00
path: '/',
name: 'Home',
2020-07-28 21:39:44 +02:00
component: TheHomeTab
},
{
path: '/tracklist/:type/:id',
name: 'Tracklist',
component: TracklistTab
},
2020-07-28 21:39:44 +02:00
{
path: '/artist/:id',
name: 'Artist',
component: ArtistTab
},
{
path: '/charts',
name: 'Charts',
component: TheChartsTab
},
{
path: '/favorites',
name: 'Favorites',
component: TheFavoritesTab
},
{
path: '/errors',
name: 'Errors',
component: TheErrorsTab
},
{
path: '/link-analyzer',
name: 'Link Analyzer',
component: TheLinkAnalyzerTab
},
{
path: '/about',
name: 'About',
component: TheAboutTab
},
{
path: '/settings',
name: 'Settings',
component: TheSettingsTab
},
{
path: '/search',
name: 'Search',
component: TheMainSearch
},
2020-07-28 21:39:44 +02:00
// 404 client side
{
path: '*',
component: TheHomeTab
}
]
const router = new VueRouter({
mode: 'history',
// linkActiveClass: 'open',
routes,
scrollBehavior(to, from, savedPosition) {
return { x: 0, y: 0 }
}
})
router.beforeEach((to, from, next) => {
let getTracklistParams = null
2020-07-28 21:39:44 +02:00
switch (to.name) {
case 'Artist':
getTracklistParams = {
2020-07-28 21:39:44 +02:00
type: 'artist',
id: to.params.id
}
2020-07-28 21:39:44 +02:00
break
case 'Tracklist':
getTracklistParams = {
2020-07-28 21:39:44 +02:00
type: to.params.type,
id: to.params.id
}
break
case 'Home':
socket.emit('get_home_data')
break
case 'Charts':
socket.emit('get_charts_data')
2020-07-28 21:39:44 +02:00
break
default:
break
}
if (getTracklistParams) {
socket.emit('getTracklist', getTracklistParams)
}
2020-07-28 21:39:44 +02:00
EventBus.$emit('trackPreview:stopStackedTabsPreview')
next()
})
export default router