Files
prism/CONTACTS_FEATURE.md

4.9 KiB
Raw Blame History

Функционал экрана "Контакты" в 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. Импорт контактов из телефона