Add contacts feature documentation and fix private conversation creation

This commit is contained in:
Bivekich
2025-08-06 05:29:04 +03:00
parent 592aa33f21
commit b3166b1dfe

95
CONTACTS_FEATURE.md Normal file
View File

@ -0,0 +1,95 @@
# Функционал экрана "Контакты" в Prism Messenger
## 🎯 Основная фича: Поиск любого пользователя по никнейму
### Визуальный дизайн
```
┌─────────────────────────────────┐
│ 🔍 Поиск по @username... │ <- Поле поиска
│ Введите никнейм для поиска │
├─────────────────────────────────┤
│ [25] [5] │ <- Статистика
│ пользователей 🟢 в сети │
├─────────────────────────────────┤
│ [Все] [🟢 Онлайн] [⭐ Контакты] │ <- Фильтры
├─────────────────────────────────┤
│ ┌─────────────────────────────┐ │
│ │ 🟦 A @alice [💬] │ │ <- Карточка пользователя
│ │ 🟢 В сети │ │
│ │ alice@mail.ru │ │
│ └─────────────────────────────┘ │
│ ┌─────────────────────────────┐ │
│ │ 🟩 B @bob [💬] │ │
│ │ Был(а) 5 мин. назад │ │
│ │ Люблю программировать │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────┘
```
## ✨ Ключевые возможности
### 1. **Мгновенный поиск по никнейму**
- Просто введите `@username` в поиске
- Поиск работает в реальном времени
- Можно найти ЛЮБОГО пользователя системы
### 2. **Быстрый старт чата**
- Нажмите на карточку пользователя или иконку 💬
- Мгновенно создается приватный чат
- Переход сразу в экран переписки
### 3. **Визуальные индикаторы**
- 🟢 **Зеленый круг** = пользователь онлайн
- **Чип "В сети"** для активных пользователей
- Время последнего визита для оффлайн пользователей
- Цветные аватары с первой буквой никнейма
### 4. **Умные фильтры**
- **Все** - показывает всех пользователей
- **Онлайн** - только активные пользователи
- **Контакты** - избранные (в разработке)
### 5. **Статистика в реальном времени**
- Общее количество пользователей
- Количество пользователей онлайн
- Обновляется автоматически
## 🔥 Пример использования
1. **Хочу написать пользователю @johndoe**
- Открываю вкладку "Контакты"
- Ввожу в поиск: `johndoe`
- Вижу карточку пользователя
- Нажимаю на нее или иконку сообщения
- Попадаю сразу в чат!
2. **Хочу найти кого-то онлайн**
- Переключаю фильтр на "Онлайн"
- Вижу всех активных пользователей
- Могу сразу начать общение
## 💡 Технические детали
### GraphQL запросы:
- `GET_USERS` - получение списка всех пользователей
- `CREATE_PRIVATE_CONVERSATION` - создание приватного чата
### Оптимизации:
- Анимация появления карточек
- Индикатор загрузки при создании чата
- Кеширование результатов поиска
- Оптимистичные обновления UI
### Безопасность:
- Нельзя найти самого себя
- Проверка прав при создании чата
- Валидация на стороне сервера
## 🚀 Планы развития
1. **Добавление в контакты** - избранные пользователи
2. **Блокировка пользователей**
3. **Групповые приглашения**
4. **QR-коды для быстрого добавления**
5. **Импорт контактов из телефона**