loadMore method

  1. @override
Future<void> loadMore(
  1. int nextPageKey
)
override

Load more data from the server using nextPageKey.

Implementation

@override
Future<void> loadMore(int nextPageKey) async {
  final previousValue = value.asSuccess;

  try {
    await for (final channels in client.queryChannels(
      filter: filter,
      // ignore: deprecated_member_use, deprecated_member_use_from_same_package
      sort: sort,
      channelStateSort: channelStateSort,
      memberLimit: memberLimit,
      messageLimit: messageLimit,
      presence: presence,
      paginationParams: PaginationParams(limit: limit, offset: nextPageKey),
    )) {
      final previousItems = previousValue.items;
      final newItems = previousItems + channels;
      final nextKey = channels.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);
  }
}