useChatSession() | isAuthenticate, isSessionReady, chatToken, clientId, loggedUserId, user, loading, error, bootstrap(options), ensureSession(), reset(), logout() |
useChatSocket() | status ('idle' | 'connecting' | 'connected' | 'disconnected' | 'error'), isConnected, onlineUsers, error, appError, connect(), disconnect() |
useConversations() | conversations, loading, page, hasNext, searchQuery, activeConversationId, fetchConversations({page, search, append}), setActiveConversation(id) |
useMessages() | conversationId, conversation, messages, loading, sending, hasNext, cursor, fetchMessages(...), sendMessage({content, conversationId?, isGroup?, receiverId?, attachments?, replyTo?}) |
useChat() | { session, conversations, messages, socket } — all four above |
useEffectiveSettings() | settings, loading, fetched, refresh(), getGate(key), getCallRecordingGate(), getWhiteboardGate(), isGroupPermissionLocked(key) |
useEffectiveSettingsOptional() | Same, or null outside ChatProvider |
useAdminFeatureGate(key) | { visible, enabled, disabledReason } |
useAppTheme() | Theme / appearance (Theme) |
useChatCustomization() | Current render props |
useCallStore(selector) | Call state machine (Calling) |