Files
prism/MAIN_SCREEN_CONCEPT.md

117 lines
3.9 KiB
Markdown
Raw Permalink 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.

# Концепция главного экрана Prism Messenger
## Структура приложения после авторизации
### 1. Bottom Tab Navigation (Нижняя навигация)
Основные разделы приложения:
1. **Чаты** (Chats) - главный раздел
2. **Контакты** (Contacts) - список пользователей
3. **Профиль** (Profile) - настройки и профиль
### 2. Экран "Чаты" (главный)
#### Header (Заголовок):
- **Логотип/Название** приложения
- **Поиск** (иконка лупы)
- **Новый чат** (иконка +)
#### Основной контент:
- **Список активных чатов** с превью последних сообщений
- **Индикаторы непрочитанных** сообщений
- **Время последнего сообщения**
- **Онлайн статус** собеседника
- **Swipe actions** для быстрых действий (архив, удаление)
#### Floating Action Button:
- Быстрое создание нового чата
### 3. Экран "Контакты"
#### Разделы:
- **Поиск пользователей** по username
- **Мои контакты** (добавленные пользователи)
- **Все пользователи** системы
- **Приглашения** (входящие/исходящие)
#### Функции:
- Добавить в контакты
- Начать чат
- Посмотреть профиль
- Заблокировать пользователя
### 4. Экран "Профиль"
#### Разделы:
- **Мой профиль**:
- Аватар (с возможностью изменения)
- Username
- Email
- Био/Статус
- Статус "В сети"
- **Настройки**:
- Уведомления
- Приватность
- Темная тема
- Язык приложения
- **Действия**:
- Выйти из аккаунта
- Удалить аккаунт
### 5. Дополнительные функции
#### Глобальный поиск:
- По сообщениям
- По пользователям
- По названиям чатов
#### Уведомления:
- Push-уведомления о новых сообщениях
- Индикаторы на иконках табов
#### Статусы пользователей:
- Онлайн/Оффлайн
- Последний визит
- "Печатает..."
## Технические детали реализации
### Навигация:
```typescript
// React Navigation структура
- Tab.Navigator
- Stack.Navigator (Чаты)
- ConversationsScreen
- ChatScreen
- NewChatScreen
- Stack.Navigator (Контакты)
- ContactsScreen
- UserProfileScreen
- Stack.Navigator (Профиль)
- ProfileScreen
- SettingsScreen
```
### GraphQL запросы для главного экрана:
1. `getConversations` - список чатов с последними сообщениями
2. `getUnreadCount` - количество непрочитанных
3. `getOnlineUsers` - список онлайн пользователей
4. `searchUsers` - поиск пользователей
### Компоненты UI:
- `TabBar` - кастомная нижняя навигация
- `ChatListItem` - элемент списка чатов
- `SearchBar` - универсальный поиск
- `UserAvatar` - аватар с индикатором онлайн
- `UnreadBadge` - бейдж непрочитанных
## Приоритеты разработки:
1. Базовая Tab навигация
2. Улучшенный список чатов
3. Экран контактов
4. Профиль и настройки
5. Поиск и фильтрация
6. Дополнительные функции