fixes
This commit is contained in:
39
CONTEXT.md
39
CONTEXT.md
@@ -1,6 +1,6 @@
|
||||
# Текущий контекст проекта
|
||||
|
||||
## Статус: Базовая интеграция с TDLib работает
|
||||
## Статус: Фаза 3 — улучшение UX
|
||||
|
||||
### Что сделано
|
||||
|
||||
@@ -13,27 +13,46 @@
|
||||
|
||||
#### Функциональность
|
||||
- Загрузка списка чатов (до 50 штук)
|
||||
- **Фильтрация чатов**: показываются только чаты из ChatList::Main (без архива)
|
||||
- Отображение названия чата и счётчика непрочитанных
|
||||
- Загрузка истории сообщений при открытии чата
|
||||
- Отображение сообщений с именем отправителя и временем
|
||||
- **Отправка текстовых сообщений**
|
||||
|
||||
#### Управление
|
||||
- `j/k` или стрелки — навигация по списку чатов
|
||||
- `д/л` — русская раскладка для j/k
|
||||
- `Enter` — открыть выбранный чат
|
||||
- `Enter` — открыть чат / отправить сообщение
|
||||
- `Esc` — закрыть открытый чат
|
||||
- `Ctrl+k` — перейти к первому чату
|
||||
- `Ctrl+R` — обновить список чатов
|
||||
- `Ctrl+C` — выход
|
||||
- Ввод текста в поле сообщения
|
||||
|
||||
### Структура проекта
|
||||
|
||||
```
|
||||
src/
|
||||
├── main.rs # Точка входа, UI рендеринг, event loop
|
||||
├── tdlib/
|
||||
│ ├── mod.rs # Модуль экспорта
|
||||
│ └── client.rs # TdClient: авторизация, загрузка чатов, сообщений
|
||||
├── main.rs # Точка входа, event loop, TDLib инициализация
|
||||
├── app/
|
||||
│ ├── mod.rs # App структура и состояние
|
||||
│ └── state.rs # AppScreen enum
|
||||
├── ui/
|
||||
│ ├── mod.rs # Роутинг UI по экранам
|
||||
│ ├── loading.rs # Экран загрузки
|
||||
│ ├── auth.rs # Экран авторизации
|
||||
│ ├── main_screen.rs # Главный экран
|
||||
│ ├── chat_list.rs # Список чатов
|
||||
│ ├── messages.rs # Область сообщений
|
||||
│ └── footer.rs # Подвал с командами
|
||||
├── input/
|
||||
│ ├── mod.rs # Роутинг ввода
|
||||
│ ├── auth.rs # Обработка ввода на экране авторизации
|
||||
│ └── main_input.rs # Обработка ввода на главном экране
|
||||
├── utils.rs # Утилиты (disable_tdlib_logs, format_timestamp)
|
||||
└── tdlib/
|
||||
├── mod.rs # Модуль экспорта
|
||||
└── client.rs # TdClient: авторизация, загрузка чатов, сообщений, отправка
|
||||
```
|
||||
|
||||
### Ключевые решения
|
||||
@@ -44,6 +63,10 @@ src/
|
||||
|
||||
3. **Синхронизация чатов**: Чаты загружаются асинхронно через updates. Main loop периодически синхронизирует `app.chats` с `td_client.chats`.
|
||||
|
||||
4. **Фильтрация чатов по ChatList::Main**: Показываем только чаты с позицией в Main списке и ненулевым order. Архивные чаты и связанные группы не отображаются.
|
||||
|
||||
5. **Сортировка по TDLib order**: Используем `position.order` для сортировки чатов (учитывает pinned и время).
|
||||
|
||||
### Зависимости (Cargo.toml)
|
||||
|
||||
```toml
|
||||
@@ -65,14 +88,14 @@ API_HASH=your_api_hash
|
||||
|
||||
## Что НЕ сделано / TODO
|
||||
|
||||
- [ ] Отправка сообщений
|
||||
- [ ] Поиск по чатам
|
||||
- [ ] Папки телеграма (сейчас только "All")
|
||||
- [ ] Отображение онлайн-статуса пользователя
|
||||
- [ ] Markdown форматирование в сообщениях
|
||||
- [ ] Скролл истории сообщений
|
||||
- [ ] Скролл истории сообщений (больше 50 сообщений)
|
||||
- [ ] Отметка сообщений как прочитанные
|
||||
- [ ] Обновление чатов в реальном времени (новые сообщения)
|
||||
- [ ] Загрузка имён пользователей (сейчас показывается User_ID)
|
||||
|
||||
## Известные проблемы
|
||||
|
||||
|
||||
Reference in New Issue
Block a user