refactor: переключились на chatDetailV2.js (чистая архитектура)

- Прямой импорт ChatControllerV2 без промежуточных слоев
- Убраны deprecated обертки (window.messageRenderer, window.chatHistoryLoader)
- Меньше кода: 231 vs 264 строки
- Более явная архитектура
- Для тестирования работы в production
This commit is contained in:
Игорь Надеин 2026-01-13 10:03:54 +03:00
parent ce2d1d4527
commit a9a6c9ffee
2 changed files with 10 additions and 7 deletions

View File

@ -513,11 +513,14 @@ export class ChatControllerV2 {
const messageEl = this.scrollElement.querySelector(`[data-message-id="${messageId}"]`);
if (messageEl) {
messageEl.scrollIntoView({
behavior: 'instant',
block: 'center',
inline: 'nearest'
});
// ✅ КРИТИЧНО: НЕ используем scrollIntoView() - он скроллит родителей!
// Вместо этого вручную скроллим только scrollElement
const containerRect = this.scrollElement.getBoundingClientRect();
const messageRect = messageEl.getBoundingClientRect();
const relativeTop = messageRect.top - containerRect.top;
const targetScrollTop = this.scrollElement.scrollTop + relativeTop - (this.scrollElement.clientHeight / 2) + (messageRect.height / 2);
this.scrollElement.scrollTop = Math.max(0, targetScrollTop);
return true;
}

View File

@ -311,8 +311,8 @@
<script type="module" src="{% static 'vendor/emoji-picker/index.js' %}"></script>
{# ========== CHAT DETAIL PAGE - CORE FUNCTIONALITY ========== #}
{# chatDetail.js инициализирует все компоненты в правильном порядке #}
<script type="module" src="{% static 'js/pages/chatDetail.js' %}"></script>
{# chatDetailV2.js - чистая архитектура с прямым импортом V2 #}
<script type="module" src="{% static 'js/pages/chatDetailV2.js' %}"></script>
{# ========== CHAT DETAIL - UI ENHANCEMENTS ========== #}
{# Реакции, контекстное меню, выделение, голосования #}