loadMessages method

Future<List<ChatMessage>> loadMessages({
  1. int page = 1,
  2. int limit = 20,
  3. String searchText = "",
})

Loads messages for the current chat

Implementation

Future<List<ChatMessage>> loadMessages({
  int page = 1,
  int limit = 20,
  String searchText = "",
}) async {
  // Use custom handler if provided
  if (_apiHandlers?.loadMessagesHandler != null) {
    try {
      _isLoading = true;
      _triggerEvent(ChatEventType.messagesChanged, _messages);

      _messages = await _apiHandlers!.loadMessagesHandler!(
          page: page, limit: limit, searchText: searchText);

      if (ChatConfig.instance.autoMarkAsRead) {
        Future.delayed(Duration(milliseconds: 500), () {
          markMessagesAsRead();
        });
      }

      _isLoading = false;
      _triggerEvent(ChatEventType.messagesChanged, _messages);
      return _messages;
    } catch (e) {
      _log('Error in custom loadMessagesHandler: $e');
      _isLoading = false;
      _triggerEvent(ChatEventType.error, 'Failed to load messages: $e');
      return [];
    }
  } else {
    return [];
  }
}