reload method

  1. @override
Future<void> reload({
  1. bool keepOffset = false,
})
override

Implementation

@override
Future<void> reload({bool keepOffset = false}) async {
  super.reload(keepOffset: keepOffset);

  loading = true;

  final data = await fetcher(
    currentPage,
    pageSize,
  );

  _maxItems = data.$2;
  if (keepOffset && currentPageItems.isNotEmpty) {
    final itemMap = {
      for (final item in data.$1) _currentPage * _pageSize + data.$1.indexOf(item): item,
    };

    _items = _items.mapIndexed((index, item) {
      return itemMap[index] ?? item;
    }).toList();
  } else {
    _items = [...items, ...data.$1];
  }

  loading = false;
}