diff --git a/apps/frontend/components.d.ts b/apps/frontend/components.d.ts
index da26ecc..150b5a3 100644
--- a/apps/frontend/components.d.ts
+++ b/apps/frontend/components.d.ts
@@ -27,6 +27,7 @@ declare module 'vue' {
DownloadImageButton: typeof import('./src/components/manage/DownloadImageButton.vue')['default']
ExamplesSection: typeof import('./src/components/TheWelcome/ExamplesSection.vue')['default']
InputText: typeof import('primevue/inputtext')['default']
+ LayoutWithTabs: typeof import('./src/layouts/LayoutWithTabs.vue')['default']
LinkCopyButton: typeof import('./src/components/link/LinkCopyButton.vue')['default']
LinkMono: typeof import('./src/components/link/LinkMono.vue')['default']
LinkQrCode: typeof import('./src/components/link/LinkQrCode.vue')['default']
@@ -43,6 +44,8 @@ declare module 'vue' {
ReadMessageSender: typeof import('./src/components/read/ReadMessageSender.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
+ TabBar: typeof import('./src/components/layout/TabBar.vue')['default']
+ TabMenuItem: typeof import('./src/components/layout/TabMenuItem.vue')['default']
TheWelcome: typeof import('./src/components/TheWelcome/TheWelcome.vue')['default']
}
}
diff --git a/apps/frontend/src/components/ChatComponent.vue b/apps/frontend/src/components/ChatComponent.vue
index e46056d..abe01f9 100644
--- a/apps/frontend/src/components/ChatComponent.vue
+++ b/apps/frontend/src/components/ChatComponent.vue
@@ -21,7 +21,11 @@
-
+
diff --git a/apps/frontend/src/components/layout/TabBar.vue b/apps/frontend/src/components/layout/TabBar.vue
new file mode 100644
index 0000000..e7e5e78
--- /dev/null
+++ b/apps/frontend/src/components/layout/TabBar.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/apps/frontend/src/components/layout/TabMenuItem.vue b/apps/frontend/src/components/layout/TabMenuItem.vue
new file mode 100644
index 0000000..c33abbd
--- /dev/null
+++ b/apps/frontend/src/components/layout/TabMenuItem.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+ {{ label }}
+
+
+
+
+
+
diff --git a/apps/frontend/src/constants/routes.ts b/apps/frontend/src/constants/routes.ts
index 1b51993..9f0914a 100644
--- a/apps/frontend/src/constants/routes.ts
+++ b/apps/frontend/src/constants/routes.ts
@@ -4,8 +4,9 @@ export const ROUTE_NAMES = {
MANAGE_QR_CODE: 'manage-qr-code',
MANAGE_QR_CODE_READY: 'manage-qr-code-ready',
MANAGE_QR_CODE_CHAT: 'manage-qr-code-chat',
- MANAGE_DASHBOARD: 'manage-dashboard',
+ MANAGE_DASHBOARD_QR_CODES: 'manage-dashboard-qr-codes',
MANAGE_DASHBOARD_QR: 'manage-dashboard-qr',
+ MANAGE_DASHBOARD_CHATS: 'manage-dashboard-chats',
READ_QR_CODE: 'read-qr-code',
DONATE: 'donate',
PUBLIC_CHAT: 'public-chat',
diff --git a/apps/frontend/src/layouts/LayoutWithTabs.vue b/apps/frontend/src/layouts/LayoutWithTabs.vue
new file mode 100644
index 0000000..67e96b6
--- /dev/null
+++ b/apps/frontend/src/layouts/LayoutWithTabs.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/router/index.ts b/apps/frontend/src/router/index.ts
index e60a8ae..c7a20dc 100644
--- a/apps/frontend/src/router/index.ts
+++ b/apps/frontend/src/router/index.ts
@@ -11,7 +11,7 @@ const routes = [
name: ROUTE_NAMES.HOME,
component: () =>
isRunningStandalone()
- ? import('@/views/ManageDashboardView.vue')
+ ? import('@/views/ManageQRCodesView.vue')
: import('@/views/HomeView.vue'),
},
{
@@ -21,14 +21,20 @@ const routes = [
},
{
path: '/manage',
- name: ROUTE_NAMES.MANAGE_DASHBOARD,
- component: () => import('@/views/ManageDashboardView.vue'),
+ name: ROUTE_NAMES.MANAGE_DASHBOARD_QR_CODES,
+ component: () => import('@/views/ManageQRCodesView.vue'),
props: true,
},
{
path: '/manage/qr',
name: ROUTE_NAMES.MANAGE_DASHBOARD_QR,
- component: () => import('@/views/ManageDashboardView.vue'),
+ component: () => import('@/views/ManageQRCodesView.vue'),
+ props: true,
+ },
+ {
+ path: '/manage/chats',
+ name: ROUTE_NAMES.MANAGE_DASHBOARD_CHATS,
+ component: () => import('@/views/ManageChatsView.vue'),
props: true,
},
{
diff --git a/apps/frontend/src/views/CreateView.vue b/apps/frontend/src/views/CreateView.vue
index cb75a43..91fc235 100644
--- a/apps/frontend/src/views/CreateView.vue
+++ b/apps/frontend/src/views/CreateView.vue
@@ -1,52 +1,48 @@
-
- Создание QR-кода — НаСвязи
-
-
+
+
+ Создание QR-кода — НаСвязи
+
+
-
-
-
-
-
-
-
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
Ошибка создания QR‑кода: {{ error }}
+
Ошибка создания QR‑кода: {{ error }}
-
-
-
-
+
+
diff --git a/apps/frontend/src/views/ManageDashboardView.vue b/apps/frontend/src/views/ManageDashboardView.vue
deleted file mode 100644
index 5ec07b5..0000000
--- a/apps/frontend/src/views/ManageDashboardView.vue
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
- Ваши QR-коды — НаСвязи
-
-
-
-
-
-
-
-
-
Управление QR-кодами
-
-
-
-
-
- Создать QR‑код
-
-
-
-
-
-
Нет созданных QR-кодов
-
Вы можете создать их прямо сейчас!
-
-
-
-
-
-
-
Произошла ошибка при загрузке данных. Пожалуйста, попробуйте позже.
-
-
-
-
-
-
-
Загрузка QR-кодов...
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/frontend/src/views/ManageQRCodeChatView.vue b/apps/frontend/src/views/ManageQRCodeChatView.vue
index 5d5987c..2566297 100644
--- a/apps/frontend/src/views/ManageQRCodeChatView.vue
+++ b/apps/frontend/src/views/ManageQRCodeChatView.vue
@@ -1,55 +1,51 @@
-
- Чат {{ chatDoc?.name ? `«${chatDoc.name}»` : '' }} — НаСвязи
-
-
+
+
+ Чат {{ chatDoc?.name ? `«${chatDoc.name}»` : '' }} — НаСвязи
+
+
-
-
-
-
-
-
-
-
-
Ваше сообщение отправлено.
-
- Вы можете написать ещё одно сообщение или подождать ответа.
-
-
+
+
+
+
+
+
+
+
Пока нет сообщений
+
Вы можете начать общение, отправив первое сообщение.
+
+
+
Ваше сообщение отправлено.
+
+ Вы можете написать ещё одно сообщение или подождать ответа.
+
+
+
+
+
+
-
- Хотите создать еще один QR‑код?
- Создайте его здесь.
-
-
- Сделайте НаСвязи удобнее. Мы будем рады вашей поддержке.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/frontend/src/views/PublicChatView.vue b/apps/frontend/src/views/PublicChatView.vue
index c00e468..e6ce64d 100644
--- a/apps/frontend/src/views/PublicChatView.vue
+++ b/apps/frontend/src/views/PublicChatView.vue
@@ -1,55 +1,45 @@
-
- Чат — НаСвязи
-
-
+
+
+ Чат — НаСвязи
+
+
-
-
-
-
-
-
-
-
-
Ваше сообщение отправлено.
-
- Вы можете написать ещё одно сообщение или подождать ответа.
-
-
+
+
+
+
+
+
+
+
+
Ваше сообщение отправлено.
+
+ Вы можете написать ещё одно сообщение или подождать ответа.
+
+
+
+
+
+
-
- Хотите создать собственный QR‑код?
- Создайте его здесь.
-
-
- Сделайте НаСвязи удобнее. Мы будем рады вашей поддержке.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+