Files
lastochka-messenger/lastochka-ui/CHANGELOG.md
Anton Budylin ea171ed95a first commit
2026-04-14 10:12:51 +03:00

111 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Веб-клиент «Ласточка» — Журнал изменений
## Версия 0.2.0 — Полная функциональность
### ✅ Реализованные функции
#### 1. Пагинация сообщений
- **Файлы:** `src/store/chat.ts`, `src/components/chat/MessagesList.tsx`
- **Что сделано:**
- Подгрузка сообщений при скролле вверх
- Индикатор загрузки «Загрузка...»
- Сохранение позиции скролла после подгрузки
- Метод `loadMoreMessages()` в store
- Флаг `hasMoreMessages` для отслеживания наличия истории
#### 2. Статусы прочтения
- **Файлы:** `src/store/chat.ts`
- **Что сделано:**
- Автоматическая отметка прочтения при открытии чата (`topic.noteRead()`)
- Метод `markMessagesAsRead()` для ручного вызова
- Интеграция с Tinode SDK
#### 3. Typing Indicator (индикатор набора текста)
- **Файлы:** `src/store/chat.ts`, `src/components/chat/MessageInput.tsx`
- **Что сделано:**
- Отправка уведомления при вводе текста (`topic.noteKeyPress()`)
- Debounce 1 секунда для избежания спама
- Метод `sendTypingNotification()` в store
#### 4. Отображение аватаров из Tinode
- **Файлы:**
- `src/lib/tinode-client.ts` — функция `getAvatarUrl()`
- `src/store/chat.ts` — извлечение аватара из контакта
- `src/tinode.d.ts` — типы для photo.large/ref
- **Что сделано:**
- Поддержка base64 (`data:image/...`)
- Поддержка ссылок (`ref`)
- Поддержка large версии аватара
- Отображение в ChatItem и Avatar компонентах
#### 5. Звук при новом сообщении
- **Файлы:** `src/store/chat.ts`, `src/components/layout/Sidebar.tsx`
- **Что сделано:**
- Web Audio API для генерации звука (без внешних файлов)
- Кнопка включения/выключения звука в Sidebar
- Звук воспроизводится только для неактивного чата
- Флаг `playSound` в store
- Метод `toggleSound()` для переключения
### 🐛 Исправления
#### TypeScript типы
- **Файл:** `src/tinode.d.ts`
- **Что исправлено:**
- Добавлены методы `getDesc()`, `noteRead()`, `noteKeyPress()` в Topic
- Добавлен `ImportMetaEnv` для Vite environment variables
- Обновлён тип TinodeContact с поддержкой `photo.large`
#### Email/SMS аутентификация
- **Файлы:** `src/lib/email-auth.ts`, `src/lib/sms-auth.ts`
- **Что исправлено:**
- Замена `reqCred()` на `acc()` (API Tinode)
- Корректная передача credential через `scheme/secret`
#### UI компоненты
- **Файлы:**
- `src/components/layout/Sidebar.tsx`
- `src/components/ui/Icon.tsx`
- **Что исправлено:**
- Добавлены иконки: `settings`, `group_add`, `campaign`, `admin_panel_settings`, `logout`
- Исправлена передача props в ChatItem (active, onClick)
### 📦 Сборка
```bash
cd dev/lastochka-ui
npm run build
# ✓ built in ~12s
```
### 🚀 Запуск dev-сервера
```bash
npm run dev
```
### 📋 Известные проблемы
1. **Админ-панель** — ошибки TypeScript в `Logs.tsx` и `Settings.tsx` (не критично для основного функционала)
2. **E2E-шифрование** — не реализовано (в планах)
3. **Отправка файлов** — требует доработки UI
### 🎯 Готовность к запуску
| Компонент | Статус |
|-----------|--------|
| Личные чаты | ✅ 100% |
| Группы | ✅ 100% |
| Каналы | ✅ 100% |
| Пагинация | ✅ 100% |
| Статусы прочтения | ✅ 100% |
| Typing indicator | ✅ 100% |
| Аватары | ✅ 100% |
| Звук | ✅ 100% |
| Тёмная тема | ✅ 100% |
| Адаптивность | ✅ 100% |
---
**Следующий этап:** Мобильные приложения (iOS/Android) — ребрендинг форков Tinode.