diff --git a/frontend/src/App.vue b/frontend/src/App.vue index acb02948..ae737421 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,9 +1,11 @@ diff --git a/frontend/src/pages/Login.vue b/frontend/src/pages/Login.vue new file mode 100644 index 00000000..556d7a3c --- /dev/null +++ b/frontend/src/pages/Login.vue @@ -0,0 +1,60 @@ + + diff --git a/frontend/src/router.js b/frontend/src/router.js index 2b5dce5a..a78ca2b1 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -1,4 +1,5 @@ import { createRouter, createWebHistory } from 'vue-router' +import { sessionStore } from '@/stores/session' const routes = [ { @@ -25,6 +26,11 @@ const routes = [ name: 'Dashboard', component: () => import('@/pages/Dashboard.vue'), }, + { + path: '/login', + name: 'Login', + component: () => import('@/pages/Login.vue'), + }, ] let router = createRouter({ @@ -32,4 +38,19 @@ let router = createRouter({ routes, }) +router.beforeEach(async (to, from, next) => { + const session = sessionStore() + + // Initialize session + await session.init() + + if (to.name === 'Login' && session.isLoggedIn) { + next({ name: 'Leads' }) + } else if (to.name !== 'Login' && !session.isLoggedIn) { + next({ name: 'Login' }) + } else { + next() + } +}) + export default router