fix: заменил scrollTo() на прямое присвоение scrollTop при инициализации

- scrollTo() НЕ работает при первичной загрузке (scrollTop остается 0)
- используется прямое присвоение scrollTop как в legacy коде
- тройной RAF для надежности
- это должно исправить проблему с автозагрузкой истории
This commit is contained in:
Игорь Надеин 2026-01-13 09:30:18 +03:00
parent f9692ba7ed
commit 4cb8911534

View File

@ -143,28 +143,25 @@ export class ChatControllerV2 {
clientHeight: this.scrollElement.clientHeight
});
// Используем scrollTo() вместо scrollTop (более надежно)
// Используем ПРЯМОЕ присвоение scrollTop (как в legacy коде)
// scrollTo() НЕ работает на первичной загрузке
await new Promise(resolve => {
requestAnimationFrame(() => {
requestAnimationFrame(() => {
const targetScroll = this.scrollElement.scrollHeight;
// Используем scrollTo с auto (не smooth!)
this.scrollElement.scrollTo({
top: targetScroll,
behavior: 'auto'
requestAnimationFrame(() => {
// Тройной RAF для надежности
this.scrollElement.scrollTop = this.scrollElement.scrollHeight;
// Проверяем через setTimeout
setTimeout(() => {
console.log('[ChatControllerV2] After scrollTop:', {
scrollHeight: this.scrollElement.scrollHeight,
scrollTop: this.scrollElement.scrollTop,
success: this.scrollElement.scrollTop > 0
});
resolve();
}, 10);
});
// Проверяем через setTimeout
setTimeout(() => {
console.log('[ChatControllerV2] After scrollTo:', {
scrollHeight: this.scrollElement.scrollHeight,
scrollTop: this.scrollElement.scrollTop,
targetScroll,
success: Math.abs(this.scrollElement.scrollTop - targetScroll) < 5
});
resolve();
}, 10);
});
});
});