diff --git a/backend/static/js/loaders/messageLoaderV2.js b/backend/static/js/loaders/messageLoaderV2.js index 14e7bee7..0db8b25c 100644 --- a/backend/static/js/loaders/messageLoaderV2.js +++ b/backend/static/js/loaders/messageLoaderV2.js @@ -471,6 +471,12 @@ export class MessageLoaderV2 { requestKey ); + console.log('[MessageLoaderV2] 🔍 API response:', { + anchor_id: result.anchor_id, + anchor_index: result.anchor_index, + messages_count: result.messages?.length || result.results?.length || 0 + }); + const messages = this._extractMessages(result); // ВАЖНО: Сначала добавляем в Store, затем берем границы из Store @@ -479,7 +485,7 @@ export class MessageLoaderV2 { const oldestMessage = this.store.getOldestMessage(chatId); const newestMessage = this.store.getNewestMessage(chatId); - return { + const loadResult = { messages, anchorId: result.anchor_id || aroundId, anchorIndex: result.anchor_index || null, @@ -488,6 +494,14 @@ export class MessageLoaderV2 { oldestId: oldestMessage?.id || null, newestId: newestMessage?.id || null }; + + console.log('[MessageLoaderV2] 🔍 Returning loadResult:', { + anchorId: loadResult.anchorId, + anchorIndex: loadResult.anchorIndex, + messagesCount: loadResult.messages.length + }); + + return loadResult; } /** diff --git a/backend/static/js/pages/chatDetailV2.js b/backend/static/js/pages/chatDetailV2.js index bbd1eefd..c2a4d925 100644 --- a/backend/static/js/pages/chatDetailV2.js +++ b/backend/static/js/pages/chatDetailV2.js @@ -58,7 +58,7 @@ const scrollContainer = document.getElementById('chatScroll'); - return { + const config = { chatId: Number(appContainer.dataset.chatId), userId: Number(appContainer.dataset.userId), userName: appContainer.dataset.userName || 'Вы', @@ -67,12 +67,22 @@ messagesUrl: appContainer.dataset.messagesUrl, markReadUrl: appContainer.dataset.markReadUrl, editUrlTemplate: appContainer.dataset.editUrlTemplate, + lastReadTimestamp: Number(appContainer.dataset.lastReadTimestamp) || null, lastReadMessageId: appContainer.dataset.lastReadMessageId ? Number(appContainer.dataset.lastReadMessageId) : null, profileUrl: scrollContainer?.dataset.profileUrl || '/employees/profile/', detailUrlTemplate: scrollContainer?.dataset.detailUrlTemplate || '/employees/detail/0/' }; + + console.log('[ChatDetailV2] 🔍 Config:', { + lastReadMessageId: config.lastReadMessageId, + lastReadTimestamp: config.lastReadTimestamp, + rawMessageId: appContainer.dataset.lastReadMessageId, + rawTimestamp: appContainer.dataset.lastReadTimestamp + }); + + return config; } /** @@ -132,7 +142,8 @@ wsConnection: wsApi, profileUrl: config.profileUrl, detailUrlTemplate: config.detailUrlTemplate, - lastReadMessageId: config.lastReadMessageId + lastReadMessageId: config.lastReadMessageId, + lastReadTimestamp: config.lastReadTimestamp // ✅ Fallback для скролла }); await chatController.init(); @@ -195,7 +206,9 @@ * Главная функция инициализации */ async function init() { + console.log('[ChatDetailV2] 🚀🚀🚀 INIT STARTED - V2 FILE LOADED 🚀🚀🚀'); const config = readConfig(); + console.log('[ChatDetailV2] 🔍 Config read result:', config); if (!config || !config.chatId) { console.error('[ChatDetailV2] Invalid configuration'); return;