ChatProvider class

Provider for managing chat state and UI interactions.

This class manages the state of messages for a specific chat. It handles loading, sending, replying, and deleting messages, and notifies listeners when the state changes.

Example:

final provider = ChatProvider(
  controller: chatController,
  chatId: 'chat-123',
  config: chatConfig,
);
Mixed-in types

Constructors

ChatProvider({required ChatController controller, required String chatId, required ChatConfig config})
Creates a new ChatProvider.

Properties

blockedUsers Set<String>
Set of blocked user IDs.
no setter
chatId String
The ID of the chat this provider manages messages for.
final
config ChatConfig
Configuration for the chat module.
final
controller ChatController
The controller for chat operations.
final
error String?
Current error message, if any.
no setter
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
hasMore bool
Whether there are more messages to load.
no setter
inputController TextEditingController
Text editing controller for the message input field.
final
isLoading bool
Whether messages are currently loading.
no setter
messages List<ChatMessage>
The list of visible messages (filtered by blocked users).
no setter
replyingTo ChatMessage?
Message currently being replied to, if any.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
unreadCount int
Number of unread messages.
no setter

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
blockUser(String userId) Future<void>
Blocks a user.
deleteMessage(ChatMessage message) Future<void>
Deletes a message.
dispose() → void
Discards any resources used by the object.
override
markAsRead() Future<void>
Marks messages as read.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
reloadMessages() → void
Reloads messages (used for retry).
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
sendMessage(CdxChatLocalizations loc, {required void onInputError(String)}) Future<void>
Sends a message or reply based on the current state.
setReplyTo(ChatMessage? message) → void
Sets the message to reply to.
toString() String
A string representation of this object.
inherited
unblockUser(String userId) Future<void>
Unblocks a user.

Operators

operator ==(Object other) bool
The equality operator.
inherited