refactor: complete UI components - implement message_bubble.rs
Some checks failed
CI / Check (pull_request) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Build (macos-latest) (pull_request) Has been cancelled
CI / Build (ubuntu-latest) (pull_request) Has been cancelled
CI / Build (windows-latest) (pull_request) Has been cancelled

Finalize Priority 3 UI components refactoring (5/5 complete):

- Create message_bubble.rs (437 lines) with 3 rendering functions:
  * render_date_separator() - centered date separators
  * render_sender_header() - sender headers (incoming/outgoing)
  * render_message_bubble() - messages with forward/reply/reactions

- Simplify messages.rs by removing ~300 lines:
  * Use message_grouping::group_messages() for logic
  * Use UI components for rendering
  * Cleaner separation of concerns

- Update module exports and main.rs

All 196 tests passing (188 tests + 8 benchmarks). No regressions.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Mikhail Kilin
2026-02-02 03:41:03 +03:00
parent 2980e52113
commit ed5a4f9c72
6 changed files with 497 additions and 342 deletions

View File

@@ -332,6 +332,51 @@ reaction_other = "gray"
## Последние обновления (2026-02-02)
### Рефакторинг — UI компоненты message_bubble.rs ЗАВЕРШЁН ✅ (2026-02-02)
**Что сделано**:
- ✅ Создан полноценный модуль `src/ui/components/message_bubble.rs` (437 строк):
- `render_date_separator()` — рендеринг разделителей дат с центрированием
- `render_sender_header()` — рендеринг заголовков отправителей (входящие/исходящие)
- `render_message_bubble()` — рендеринг сообщений (forward, reply, текст с entities, реакции)
- Функция `wrap_text_with_offsets()` для переноса длинных текстов
- ✅ Упрощён `src/ui/messages.rs`:
- Удалено **~300 строк** ручной группировки и рендеринга
- Используется `message_grouping::group_messages()` для логической группировки
- Используются компоненты для рендеринга каждого типа `MessageGroup`
- Код стал чище и понятнее
- ✅ Обновлены модули:
- `src/ui/components/mod.rs` — добавлены экспорты новых функций
- `src/main.rs` — добавлен `mod message_grouping;`
**Результат**:
-Все **196 тестов** (188 tests + 8 benchmarks) прошли успешно
- ✅ Ничего не сломалось - тесты защитили от регрессии
-**P3.7 — UI компоненты**: 5/5 (100%) ЗАВЕРШЕНО!
- ✅ Код стал модульным и переиспользуемым
- ✅ Упрощена поддержка и тестирование
**Преимущества**:
- 📦 Разделение ответственности — логика (grouping) отделена от представления (rendering)
- 🔄 Переиспользуемые компоненты для рендеринга сообщений
- 🧪 Проще тестировать отдельные части
- 📖 Улучшенная читаемость кода
- 🛡️ Тесты подтвердили корректность рефакторинга
**Файлы изменены**:
- `src/ui/components/message_bubble.rs` — создан (437 строк)
- `src/ui/components/mod.rs` — добавлены экспорты
- `src/ui/messages.rs` — упрощён (~300 строк удалено, используются компоненты)
- `src/main.rs` — добавлен `mod message_grouping;`
- `REFACTORING_ROADMAP.md` — обновлён статус P3.7
- `CONTEXT.md` — добавлена запись об изменениях
---
## Последние обновления (2026-02-02 ранее)
### Исправление интеграционных тестов — Проблема с TDLib в тестах ✅ (2026-02-02)
**Проблема**: