54 lines
2.1 KiB
JavaScript
54 lines
2.1 KiB
JavaScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import HomeView from '../views/HomeView.vue'
|
|
import DocViewer from '../components/DocViewer.vue'
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
|
|
scrollBehavior(to, from, savedPosition) {
|
|
// Если в ссылке есть хэш (например, #pricing)
|
|
if (to.hash) {
|
|
return new Promise((resolve) => {
|
|
// Даем 200 миллисекунд компонентам (Three.js/Swiper) на полную отрисовку
|
|
setTimeout(() => {
|
|
resolve({
|
|
el: to.hash,
|
|
behavior: 'smooth',
|
|
// Корректировка отступа сверху, чтобы липкая (sticky) шапка не перекрывала заголовок блока
|
|
offset: { x: 0, y: 80 }
|
|
})
|
|
}, 200)
|
|
})
|
|
}
|
|
|
|
// Если хэша нет, при переходе на новую страницу просто скроллим в самый верх
|
|
return { top: 0 }
|
|
},
|
|
|
|
routes: [
|
|
{
|
|
path: '/',
|
|
name: 'home',
|
|
component: HomeView,
|
|
meta: {
|
|
title: 'uVPN',
|
|
description: 'Безопасный, быстрый и анонимный VPN-сервис для вашего ПК и смартфона. Защитите свои данные от посторонних глаз уже сегодня.',
|
|
keywords: 'vpn, сервис, анонимность, безопасность, шифрование, купить vpn'
|
|
}
|
|
},
|
|
{
|
|
path: '/docs/:docName',
|
|
name: 'documents',
|
|
component: DocViewer,
|
|
props: true,
|
|
meta: {
|
|
title: 'Юридические сведения',
|
|
description: 'Пользовательское соглашение и политика конфиденциальности сервиса uVPN.',
|
|
keywords: 'vpn, пользовательское соглашение, политика конфиденциальности, документы'
|
|
}
|
|
}
|
|
]
|
|
})
|
|
|
|
export default router
|