loadMoreMessages method
Future<List<VBaseMessage>?>
loadMoreMessages(
)
inherited
Implementation
Future<List<VBaseMessage>?> loadMoreMessages() async {
_loadingStatus = LoadMoreStatus.loading;
_filterDto.lastId = value.last.id;
final localLoadedMessages = await messageProvider.getLocalMessages(
roomId: vRoom.id,
filter: _filterDto,
);
if (localLoadedMessages.isEmpty) {
///if no more data ask server for it
return await vSafeApiCall<List<VBaseMessage>>(
request: () async {
return messageProvider.getApiMessages(
roomId: vRoom.id,
dto: _filterDto,
);
},
onSuccess: (response) {
if (response.isEmpty) {
_loadingStatus = LoadMoreStatus.completed;
return null;
}
_loadingStatus = LoadMoreStatus.loaded;
value.addAll(response);
notifyListeners();
return response;
},
);
}
_loadingStatus = LoadMoreStatus.loaded;
value.addAll(localLoadedMessages);
notifyListeners();
return localLoadedMessages;
}