diff --git a/backend/static/js/controllers/chatControllerV2.js b/backend/static/js/controllers/chatControllerV2.js index 42d98d57..ef01abc1 100644 --- a/backend/static/js/controllers/chatControllerV2.js +++ b/backend/static/js/controllers/chatControllerV2.js @@ -45,6 +45,7 @@ export class ChatControllerV2 { this.scrollElement = options.scrollElement; this.containerId = options.containerId || 'chatScroll'; this.lastReadMessageId = options.lastReadMessageId || null; + this.lastReadTimestamp = options.lastReadTimestamp || null; // Создаем компоненты this.store = new MessageStoreV2({ currentUserId: this.currentUserId }); @@ -114,8 +115,10 @@ export class ChatControllerV2 { try { // 1. Загружаем сообщения + // Используем timestamp как fallback если нет message ID (API поддерживает оба) + const anchorValue = this.lastReadMessageId || this.lastReadTimestamp; const loadResult = await this.loader.loadInitial(this.chatId, { - aroundMessageId: this.lastReadMessageId + aroundMessageId: anchorValue }); // 2. Скрываем контейнер для плавного рендера diff --git a/backend/static/js/pages/chatDetail.js b/backend/static/js/pages/chatDetail.js index 30cbc62e..3e0be5e5 100644 --- a/backend/static/js/pages/chatDetail.js +++ b/backend/static/js/pages/chatDetail.js @@ -183,7 +183,8 @@ async function initializeComponents(config, userWs) { profileUrl: config.profileUrl || '/employees/profile/', detailUrlTemplate: config.detailUrlTemplate || '/employees/detail/0/', messagesUrl: config.messagesUrl, - lastReadTimestamp: config.lastReadMessageId || config.lastReadTimestamp // Используем message_id, fallback на timestamp + lastReadMessageId: config.lastReadMessageId, // ✅ Передаем message_id + lastReadTimestamp: config.lastReadTimestamp // ✅ Fallback на timestamp }); console.log('[ChatDetail] Initializing ChatController...');