diff --git a/frontend/index.html b/frontend/index.html index 9cb5720..4742673 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,7 +4,10 @@ - Space Booking + + + + ROA Space — Rezervarea spațiilor, fără bătăi de cap
diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bb93e46..1596e66 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -49,7 +49,7 @@ -
+
@@ -72,6 +72,7 @@ const route = useRoute() const isPublicRoute = computed(() => route.meta.isPublic === true) const showSidebar = computed(() => authStore.isAuthenticated && !isPublicRoute.value) +const fullBleed = computed(() => route.meta.fullBleed === true) const { collapsed, toggleMobile } = useSidebar() const notifications = ref([]) @@ -186,6 +187,13 @@ onUnmounted(() => { padding: 2rem 1.5rem; } +/* Full-bleed pages (e.g. landing) manage their own width/padding */ +.content-full { + max-width: none; + margin: 0; + padding: 0; +} + /* Mobile header */ .mobile-header { display: none; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 96a0877..1b3f188 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -8,7 +8,9 @@ const router = createRouter({ routes: [ { path: '/', - redirect: '/dashboard' + name: 'Landing', + component: () => import('@/views/Landing.vue'), + meta: { requiresAuth: false, fullBleed: true } }, { path: '/login', @@ -135,7 +137,7 @@ router.beforeEach((to, _from, next) => { next('/dashboard') } else if (to.meta.requiresManager && !authStore.isAdminOrManager) { next('/dashboard') - } else if (to.path === '/login' && authStore.isAuthenticated) { + } else if ((to.path === '/login' || to.path === '/') && authStore.isAuthenticated) { next('/dashboard') } else { next() diff --git a/frontend/src/views/Landing.vue b/frontend/src/views/Landing.vue new file mode 100644 index 0000000..bd2e680 --- /dev/null +++ b/frontend/src/views/Landing.vue @@ -0,0 +1,664 @@ + + + + +