loadMore method
Load more data from the server using nextPageKey
.
Implementation
@override
Future<void> loadMore(int nextPageKey) async {
final previousValue = value.asSuccess;
try {
final userResponse = await client.queryUsers(
filter: _activeFilter,
sort: _activeSort,
presence: presence,
pagination: PaginationParams(limit: limit, offset: nextPageKey),
);
final users = userResponse.users;
final previousItems = previousValue.items;
final newItems = previousItems + users;
final nextKey = users.length < limit ? null : newItems.length;
value = PagedValue(
items: newItems,
nextPageKey: nextKey,
);
} on StreamChatError catch (error) {
value = previousValue.copyWith(error: error);
} catch (error) {
final chatError = StreamChatError(error.toString());
value = previousValue.copyWith(error: chatError);
}
}