112 lines
3.4 KiB
TypeScript
112 lines
3.4 KiB
TypeScript
import { createRouter, createWebHistory } from 'vue-router'
|
|
import { ROUTE_NAMES } from '@/constants/routes'
|
|
import HomeView from '@/views/HomeView.vue'
|
|
|
|
const routes = [
|
|
{
|
|
path: '/',
|
|
name: ROUTE_NAMES.HOME,
|
|
component: HomeView,
|
|
},
|
|
{
|
|
path: '/create',
|
|
name: ROUTE_NAMES.CREATE,
|
|
component: () => import('@/views/CreateView.vue'),
|
|
},
|
|
{
|
|
path: '/manage/:qr_code_uri/ready',
|
|
name: ROUTE_NAMES.MANAGE_QR_CODE_READY,
|
|
component: () => import('@/views/ManageQRCodeReadyView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/manage/:qr_code_uri/chat/:chat',
|
|
name: ROUTE_NAMES.MANAGE_QR_CODE_CHAT,
|
|
component: () => import('@/views/ManageQRCodeChatView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/read/:qr_code_uri',
|
|
name: ROUTE_NAMES.READ_QR_CODE,
|
|
component: () => import('@/views/ReadQRCodeView.vue'),
|
|
props: true,
|
|
},
|
|
{
|
|
path: '/donate',
|
|
name: ROUTE_NAMES.DONATE,
|
|
component: () => import('@/views/DonateView.vue'),
|
|
},
|
|
{
|
|
path: '/chat/:qr_code_uri/:chat',
|
|
name: ROUTE_NAMES.PUBLIC_CHAT,
|
|
component: () => import('@/views/PublicChatView.vue'),
|
|
props: true,
|
|
},
|
|
|
|
// Закомментированные маршруты
|
|
// {
|
|
// path: '/create/actions',
|
|
// name: ROUTE_NAMES.CREATE_ACTIONS,
|
|
// component: () => import('@/views/CreateActionsView.vue'), // Второй шаг создания QR‑кода
|
|
// },
|
|
// {
|
|
// path: '/manage/:qr_code/settings',
|
|
// name: ROUTE_NAMES.MANAGE_SETTINGS,
|
|
// component: () => import('@/views/SettingsView.vue'), // Настройки QR‑кода для владельца
|
|
// },
|
|
// {
|
|
// path: '/manage/profile',
|
|
// name: ROUTE_NAMES.MANAGE_PROFILE,
|
|
// component: () => import('@/views/ProfileView.vue'), // Личный кабинет владельца
|
|
// },
|
|
// {
|
|
// path: '/manage/:qr_code/:chat',
|
|
// name: ROUTE_NAMES.MANAGE_CHAT,
|
|
// component: () => import('@/views/ChatView.vue'), // Чат для владельца
|
|
// },
|
|
// {
|
|
// path: '/:qr_code',
|
|
// name: ROUTE_NAMES.PUBLIC_QR,
|
|
// component: () => import('@/views/PublicQRView.vue'), // Публичная страница QR‑кода
|
|
// },
|
|
// {
|
|
// path: '/help',
|
|
// name: ROUTE_NAMES.HELP,
|
|
// component: () => import('@/views/HelpView.vue'), // Страница помощи и FAQ
|
|
// },
|
|
// {
|
|
// path: '/about',
|
|
// name: ROUTE_NAMES.ABOUT,
|
|
// component: () => import('@/views/AboutView.vue'), // Страница информации о компании и проекте
|
|
// },
|
|
// {
|
|
// path: '/contact',
|
|
// name: ROUTE_NAMES.CONTACT,
|
|
// component: () => import('@/views/ContactView.vue'), // Страница с контактной информацией
|
|
// },
|
|
// {
|
|
// path: '/privacy-policy',
|
|
// name: ROUTE_NAMES.PRIVACY_POLICY,
|
|
// component: () => import('@/views/PrivacyPolicyView.vue'), // Политика конфиденциальности
|
|
// },
|
|
// {
|
|
// path: '/terms-of-service',
|
|
// name: ROUTE_NAMES.TERMS_OF_SERVICE,
|
|
// component: () => import('@/views/TermsOfServiceView.vue'), // Условия использования
|
|
// },
|
|
]
|
|
|
|
const router = createRouter({
|
|
history: createWebHistory(),
|
|
routes,
|
|
scrollBehavior(to, from, savedPosition) {
|
|
if (savedPosition && to.name !== ROUTE_NAMES.CREATE) {
|
|
return savedPosition
|
|
} else {
|
|
return { top: 0, behavior: 'smooth' }
|
|
}
|
|
},
|
|
})
|
|
|
|
export default router
|