mirror of
https://github.com/janishutz/MusicPlayerV2.git
synced 2025-11-25 04:54:23 +00:00
88 lines
2.3 KiB
TypeScript
88 lines
2.3 KiB
TypeScript
import { createRouter, createWebHistory } from 'vue-router';
|
|
import HomeView from '@/views/HomeView.vue';
|
|
import { useUserStore } from '@/stores/userStore';
|
|
|
|
const router = createRouter( {
|
|
history: createWebHistory( import.meta.env.BASE_URL ),
|
|
routes: [
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: HomeView,
|
|
meta: {
|
|
'authRequired': false,
|
|
'title': 'Login'
|
|
}
|
|
},
|
|
{
|
|
path: '/app',
|
|
name: 'app',
|
|
component: () => import( '../views/AppView.vue' ),
|
|
meta: {
|
|
'authRequired': true,
|
|
'title': 'App'
|
|
}
|
|
},
|
|
{
|
|
path: '/get',
|
|
name: 'get',
|
|
component: () => import( '../views/GetView.vue' ),
|
|
meta: {
|
|
'authRequired': false,
|
|
'title': 'Get'
|
|
}
|
|
},
|
|
{
|
|
path: '/share/:name',
|
|
name: 'share',
|
|
component: () => import( '../views/RemoteView.vue' ),
|
|
meta: {
|
|
'authRequired': false,
|
|
'title': 'Share'
|
|
}
|
|
},
|
|
{
|
|
path: '/fancy/:name',
|
|
name: 'fancy',
|
|
component: () => import( '../views/ShowcaseView.vue' ),
|
|
meta: {
|
|
'authRequired': false,
|
|
'title': 'Fancy View'
|
|
}
|
|
},
|
|
{
|
|
path: '/:pathMatch(.*)*',
|
|
name: 'NotFound',
|
|
component: () => import( '../views/404View.vue' ),
|
|
meta: {
|
|
title: '404 :: Page not found',
|
|
transition: 'scale',
|
|
}
|
|
},
|
|
]
|
|
} );
|
|
|
|
// router.beforeResolve( ( to, _from, next ) => {
|
|
// if ( to.name ) {
|
|
// NProgress.start();
|
|
// }
|
|
// next();
|
|
// } );
|
|
|
|
router.beforeEach( ( to ) => {
|
|
const userStore = useUserStore();
|
|
const isUserAuthenticated = userStore.getUserAuthenticated;
|
|
if ( !isUserAuthenticated && to.meta.authRequired ) {
|
|
localStorage.setItem( 'redirect', to.fullPath );
|
|
return { name: 'home' };
|
|
}
|
|
} );
|
|
|
|
router.afterEach( ( to ) => {
|
|
window.scrollTo( { top: 0, behavior: 'smooth' } );
|
|
document.title = to.meta.title ? to.meta.title + ' - MusicPlayer' : 'MusicPlayer';
|
|
// NProgress.done();
|
|
} );
|
|
|
|
export default router;
|