Documentation Index
Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Descripción
El módulo Chat implementa mensajería en tiempo real usando Stream Chat SDK. Es el módulo más complejo de la aplicación con más de 38 componentes custom.- Ubicación:
src/modules/chat/
Screens
| Screen | Ruta | Descripción |
|---|---|---|
ChatsListScreen | /(tabs)/03_inbox | Lista de conversaciones |
ChatDetailScreen | /chat/[channelType]/[channelId] | Conversación individual |
ChannelInfoScreen | /chat/[channelType]/[channelId]/info | Información del canal |
ChannelMediaScreen | /chat/[channelType]/[channelId]/media | Galería de medios del canal |
ChatSearchScreen | /(tabs)/03_inbox/search | Búsqueda de mensajes |
ArchivedChatsScreen | /(tabs)/03_inbox/archived | Chats archivados |
ChatOnboardingScreen | /chat/invite/onboarding | Onboarding de chat |
API Endpoints
| Método | Path | Descripción |
|---|---|---|
POST | /chat/login | Autenticación con Stream |
POST | /chat/refresh | Renovar token de chat |
PATCH | /chat/profile | Actualizar perfil de chat |
POST | /chat/invitations/generate | Generar invitación de chat |
GET | /chat/invitations/info/{token} | Información de invitación |
La autenticación con Stream Chat es independiente del login principal. El token de chat se
gestiona a través de
chatAuthService.Hooks
| Hook | Descripción |
|---|---|
useStreamClient() | Gestión del cliente Stream Chat |
useStreamClientEvents() | Manejo de eventos (mensajes, typing, etc.) |
useUnreadCount() | Conteo de mensajes no leídos |
useChannelPreviewData() | Datos de preview de canal |
useChannelMedia() | Gestión de medios del canal |
useChannelMessageSearch() | Búsqueda dentro del canal |
useAttachmentHandlers() | Manejo de archivos/imágenes adjuntas |
useVoiceRecorder() | Grabación de mensajes de voz |
useAudioPlayer() | Reproducción de audio |
useChatTheme() | Personalización de tema |
useKeyboardVisibility() | Estado del teclado |
Tipos principales
- Tipos de canal
- Tipos de mensaje
- Permisos
- Delivery status
Store
El módulo utilizachatStore en Zustand para gestionar el estado del chat:
StreamClient— instancia del cliente de Stream ChatisConnected— estado de conexiónactiveChannel— canal actualmente activounreadCount— conteo de mensajes no leídos- Token management — almacenamiento y renovación de tokens de chat
Componentes destacados
El módulo cuenta con más de 38 componentes custom organizados en tres categorías principales:message-input/
14+ componentes para entrada de mensajes:
InputMicButton, InputSendButton,
VoiceRecordingPreview, AttachmentMenu, LocationPicker, ContactPicker, entre otros.message-attachments/
11 componentes para renderizado de diferentes tipos de adjuntos: imágenes, videos, archivos,
notas de voz, ubicaciones, etc.
message/
13 componentes para display de mensajes con diferentes layouts según tipo, estado y
permisos.
Services
- chatAuthService
- channel-name
- featureFlagService
Servicio de autenticación específico para Stream Chat: - Token provider: Obtiene y cachea el
token de Stream. - Refresh: Renueva el token cuando expira. - Cache: Almacena el token
para evitar llamadas innecesarias al backend.
Context
El módulo exponeSearchContext para gestionar el estado de búsqueda de mensajes a través de los componentes de la pantalla de búsqueda.