117 lines
3.9 KiB
Markdown
117 lines
3.9 KiB
Markdown
# Концепция главного экрана 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. Дополнительные функции |