ЛС: редизайн списка (фото-аватары, галочка/значок связи у имени, попап-цепочка→профиль) + demo-чат и lab-маршрут

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Pixel
2026-06-19 19:48:27 +03:00
co-authored by Claude Opus 4.8
parent aea6bbcb0e
commit 6904ac8b7c
13 changed files with 583 additions and 229 deletions
+7 -1
View File
@@ -63,6 +63,7 @@ import * as appLogView from './pages/app-log-view.js';
import * as pwaDiagnosticsView from './pages/pwa-diagnostics-view.js';
import * as solanaUsersInitView from './pages/solana-users-init-view.js';
import * as messagesList from './pages/messages-list.js';
import * as dmLabChat from './pages/messages/dm-lab-chat.js';
import * as contactSearchView from './pages/contact-search-view.js';
import * as chatView from './pages/chat-view.js';
import * as userProfileView from './pages/user-profile-view.js';
@@ -105,6 +106,7 @@ const routes = {
'pwa-diagnostics-view': pwaDiagnosticsView,
'solana-users-init-view': solanaUsersInitView,
'messages-list': messagesList,
'dm-lab-chat': dmLabChat,
'contact-search-view': contactSearchView,
'chat-view': chatView,
user: userProfileView,
@@ -151,6 +153,7 @@ const GUEST_ALLOWED_PAGES = new Set([
'channel-thread-view',
'user',
'contact-search-view',
'dm-lab-chat', // demo-чат лаборатории ЛС (мок, без сессии)
]);
setClientErrorTransport((payload) => authService.reportClientUiError(payload));
@@ -687,7 +690,10 @@ function renderApp() {
const route = getRoute();
const pageId = route.pageId || (state.session.isAuthorized ? 'messages-list' : 'start-view');
if (!state.session.isAuthorized && !PRE_AUTH_PAGES.includes(pageId) && !GUEST_ALLOWED_PAGES.has(pageId)) {
// Гостю доступен ТОЛЬКО demo-маршрут ЛС (/messages-list/lab) — для оффлайн-проверки редизайна без сессии.
// Реальный /messages-list остаётся защищённым (mode пустой → редирект на start-view).
const isDmDemo = pageId === 'messages-list' && route.params?.mode === 'lab';
if (!state.session.isAuthorized && !PRE_AUTH_PAGES.includes(pageId) && !GUEST_ALLOWED_PAGES.has(pageId) && !isDmDemo) {
navigate('start-view');
return;
}