Files
bordro-esleme/ui/src/router/index.js
2024-04-11 21:02:41 +03:00

67 lines
1.6 KiB
JavaScript

import {
createMemoryHistory,
createRouter,
createWebHashHistory,
createWebHistory,
} from 'vue-router'
import routes from './routes'
import useLoginStore from 'stores/login'
/*
* If not building with SSR mode, you can
* directly export the Router instantiation;
*
* The function below can be async too; either use
* async/await or return a Promise which resolves
* with the Router instance.
*/
const createHistory = process.env.SERVER
? createMemoryHistory
: (process.env.VUE_ROUTER_MODE === 'history'
? createWebHistory
: createWebHashHistory)
const Router = createRouter({
scrollBehavior: () => ({ left: 0, top: 0 }),
routes,
// Leave this as is and make changes in quasar.conf.js instead!
// quasar.conf.js -> build -> vueRouterMode
// quasar.conf.js -> build -> publicPath
history: createHistory(process.env.VUE_ROUTER_BASE),
})
Router.beforeEach(
(to, from) => {
const loginStore = useLoginStore()
const isLoggedIn = loginStore.IsLoggedIn()
// instead of having to check every route record with
// to.matched.some(record => record.meta.requiresAuth)
if (to.meta.requiresAuth && !isLoggedIn &&
((to.path !== '/') || (to.path !== 'login'))) {
// this route requires auth, check if logged in
// if not, redirect to login page.
return {
path: '/login',
// save the location we were at to come back later
//query: { redirect: to.fullPath },
}
}
if ((isLoggedIn) && ((to.path === '/') || (to.path === 'login'))) {
return {
path: '/',
query: '',
}
}
},
)
export default Router