import { eventBus } from '@/utils' import { Route } from '@/router' import { userStore } from '@/stores' import { localStorageService } from '@/services' export const routes: Route[] = [ { path: '/home', screen: 'Home' }, { path: '/404', screen: '404' }, { path: '/queue', screen: 'Queue' }, { path: '/songs', screen: 'Songs' }, { path: '/albums', screen: 'Albums' }, { path: '/artists', screen: 'Artists' }, { path: '/favorites', screen: 'Favorites' }, { path: '/recently-played', screen: 'RecentlyPlayed' }, { path: '/search', screen: 'Search.Excerpt' }, { path: '/search/songs', screen: 'Search.Songs' }, { path: '/upload', screen: 'Upload', onResolve: () => userStore.current?.is_admin }, { path: '/settings', screen: 'Settings', onResolve: () => userStore.current?.is_admin }, { path: '/users', screen: 'Users', onResolve: () => userStore.current?.is_admin }, { path: '/youtube', screen: 'YouTube' }, { path: '/profile', screen: 'Profile' }, { path: 'visualizer', screen: 'Visualizer' }, { path: '/album/(?\\d+)', screen: 'Album' }, { path: '/artist/(?\\d+)', screen: 'Artist' }, { path: '/playlist/(?\\d+)', screen: 'Playlist' }, { path: '/genres', screen: 'Genres' }, { path: '/genres/(?\.+)', screen: 'Genre' }, { path: '/visualizer', screen: 'Visualizer' }, { path: '/song/(?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})', screen: 'Queue', redirect: () => 'queue', onResolve: params => { localStorageService.set('song-to-queue', params.id) return true } }, { path: '/invitation/accept/(?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})', screen: 'Invitation.Accept' } ]