Add contacts feature documentation and fix private conversation creation
This commit is contained in:
95
CONTACTS_FEATURE.md
Normal file
95
CONTACTS_FEATURE.md
Normal 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. **Импорт контактов из телефона**
|
Reference in New Issue
Block a user