loadMore method

Future<void> loadMore({
  1. bool failOnError = false,
})

Implementation

Future<void> loadMore({bool failOnError = false}) async {
  if (state.hasMore && !state.loading.isLoading) {
    try {
      state = state.copyWith(
        loading: const ChatRoomLoadingState.loading(),
      );
      final hasMore = !await timeline.paginateBackwards(20);
      // wait for diffRx to be finished
      state = state.copyWith(
        hasMore: hasMore,
        loading: const ChatRoomLoadingState.loaded(),
      );
    } catch (e, s) {
      _log.severe('Error loading more messages', e, s);
      state = state.copyWith(
        loading: ChatRoomLoadingState.error(e.toString()),
      );
      if (failOnError) {
        rethrow;
      }
    }
  }
}