ChatController class

Controller based on ChangeNotifier, compatible with Provider.

Manages:

  • Message feed
  • Unread count
  • Active reply
  • Errors
  • Sending messages
  • Deletion
  • User blocking
  • Pagination
  • Auto scroll
  • Mark as read

Example:

final controller = ChatController(
  service: chatService,
  chatId: 'chat-123',
  currentUserId: 'user-456',
);
Inheritance

Constructors

ChatController({required ChatService service, required String chatId, required String currentUserId})
Creates a new ChatController.

Properties

blockedUsers → Set<String>
Set of blocked user IDs.
no setter
chatId → String
ID of the chat.
final
currentUserId → String
ID of the current user.
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
isLoading → bool
Whether messages are currently loading.
no setter
messages → List<ChatMessage>
List of all messages.
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
service → ChatService
The chat service implementation.
final
unreadCount → int
Number of unread messages.
no setter
visibleMessages → List<ChatMessage>
Filters messages removing those from blocked users.
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
loadMore() → Future<void>
Loads an older page by widening the live watchMessages window.
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(String text) → Future<void>
Sends a message.
setReplyingTo(ChatMessage? message) → void
Sets the message being replied 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