Corp/docs/completed
Игорь Надеин 53ec1a7b87 feat: implement Telegram-style image dimension pre-loading to fix auto-scroll
- Backend: added width/height fields to MessageAttachment model with Pillow auto-extraction
- Migration: 0021_add_image_dimensions + populate_image_dimensions management command
- API: serialize width/height in messageAttachmentSerializer and consumers.py
- Frontend: switched from CSS aspect-ratio to explicit pixel calculation (Telegram approach)
  * messageRendererV2.js: calculate exact dimensions (maxWidth=500px, proportional height)
  * Fixes scroll jump issue: images now reserve exact space before loading
  * Debug logging added to validate dimension rendering
- Testing: 18/18 images populated successfully with dimensions

This prevents scroll position shifts when images load after initial positioning,
implementing the same approach as Telegram Web.

Related: scroll positioning, image preloading, chat UX
2026-01-14 17:32:06 +03:00
..

Завершенные задачи

Эта папка содержит документацию по завершенным задачам проекта.

📊 Категории

🔄 Рефакторинг (5 файлов)

  • BASE_TEMPLATE_REFACTORING_COMPLETE.md - базовые шаблоны
  • CHAT_LIST_REFACTORING_COMPLETE.md - список чатов
  • DOCUMENTS_REFACTORING_COMPLETE.md - модуль документов
  • JS_MODULES_REFACTORING_COMPLETE.md - JavaScript модули
  • REFACTORING_SUMMARY.md - общая сводка

🐛 Исправления (7 файлов)

  • CHAT_CACHING_FIX.md - кэширование чатов
  • CHAT_LIST_BUGS_FIX.md - баги списка чатов
  • FOUC_FIX.md - Flash of Unstyled Content
  • MESSAGE_NEWLINES_FIX.md - переносы строк в сообщениях
  • POLL_WEBSOCKET_FIX.md - WebSocket для опросов
  • WEBSOCKET_ERROR_FIX.md - ошибки WebSocket
  • WEBSOCKET_KEEPALIVE_FIX.md - keepalive соединения

✨ Реализованные фичи (10+ файлов)

  • AVATAR_CROPPER_IMPLEMENTATION.md - обрезка аватаров
  • FEED_AJAX_REFACTORING.md - AJAX лента новостей
  • FORWARDED_MESSAGE_METADATA.md - метаданные пересылки
  • MESSAGE_EDITING_FULL_RERENDER.md - полный рендеринг при редактировании
  • MESSAGE_RENDERING_REFACTORING.md - рендеринг сообщений
  • MESSAGE_SELECTION_FORWARDING.md - выбор и пересылка сообщений
  • MESSAGE_SENDING_REFACTORING.md - отправка сообщений
  • POLLS_IMPLEMENTATION.md - система опросов
  • POLL_VOTERS_LIST.md - список проголосовавших
  • REACTIONS_FROM_DATABASE.md - реакции из БД
  • REPLY_UPDATE_ON_EDIT.md - обновление ответов
  • и другие...

📝 Примечание

Все задачи в этой папке завершены и работают в production. Файлы сохранены для истории и справки.