refactor: add modal/validation utils and partial App encapsulation
Quick wins refactoring (Variant 1): - Created src/utils/modal_handler.rs (120+ lines) - 4 functions for modal handling (close, confirm, yes/no) - ModalAction enum for type-safe processing - English and Russian keyboard layout support - 4 unit tests - Created src/utils/validation.rs (180+ lines) - 7 validation functions (empty, length, IDs, etc) - Covers all common validation patterns - 7 unit tests - Partial App encapsulation: - Made config field private (readonly via app.config()) - Added 30+ getter/setter methods - Updated ui/messages.rs to use config() - Updated documentation: - REFACTORING_OPPORTUNITIES.md: #1 Complete, #5 Partial - CONTEXT.md: Added quick wins section Tests: 563 passed, 0 failed Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
30
CONTEXT.md
30
CONTEXT.md
@@ -332,6 +332,36 @@ reaction_other = "gray"
|
||||
|
||||
## Последние обновления (2026-02-01)
|
||||
|
||||
### Рефакторинг — Быстрые победы (Вариант 1) ✅ (2026-02-01)
|
||||
|
||||
**Что сделано**:
|
||||
- ✅ Создан `src/utils/modal_handler.rs` (120+ строк):
|
||||
- 4 функции для обработки модальных окон
|
||||
- `ModalAction` enum для type-safe обработки
|
||||
- Поддержка английской и русской раскладки
|
||||
- 4 unit теста (все проходят)
|
||||
- ✅ Создан `src/utils/validation.rs` (180+ строк):
|
||||
- 7 функций валидации: `is_non_empty()`, `is_within_length()`, `is_valid_chat_id()`, и др.
|
||||
- Покрывает все основные паттерны валидации
|
||||
- 7 unit тестов (все проходят)
|
||||
- ✅ Частичная инкапсуляция App:
|
||||
- Поле `config` сделано приватным (readonly через `app.config()`)
|
||||
- Добавлено 30+ методов-геттеров и сеттеров
|
||||
- Остальные поля оставлены pub для совместимости
|
||||
|
||||
**Статус Дублирование кода (#1)**: ✅ ЗАВЕРШЕНО! (3/3)
|
||||
- ✅ retry utils (было выполнено ранее)
|
||||
- ✅ modal_handler
|
||||
- ✅ validation
|
||||
|
||||
**Статус Инкапсуляция (#5)**: ✅ Частично выполнено (1/4)
|
||||
- ✅ Config инкапсулирован
|
||||
- ⏳ Полная инкапсуляция требует массового рефакторинга 170+ мест
|
||||
|
||||
**Все тесты проходят**: 563 passed; 0 failed ✅
|
||||
|
||||
---
|
||||
|
||||
### Тестирование — Фаза 4 ЗАВЕРШЕНА! ✅ (2026-02-01)
|
||||
|
||||
**Что сделано**:
|
||||
|
||||
Reference in New Issue
Block a user