Line data Source code
1 : import 'package:flutter_bloc_patterns/base_list.dart'; 2 : import 'package:flutter_bloc_patterns/paged_filter_list.dart'; 3 : import 'package:flutter_bloc_patterns/src/list/paged/page.dart'; 4 : import 'package:flutter_bloc_patterns/src/list/paged/paged_list_filter_bloc.dart'; 5 : import 'package:flutter_bloc_patterns/src/list/paged/paged_list_repository.dart'; 6 : 7 : /// A list BLoC with pagination but without filtering. 8 : /// 9 : /// Designed to collaborate with [ViewStateBuilder] for displaying data. 10 : /// 11 : /// Call [loadFirstPage] to fetch first page of data. 12 : /// Call [loadNextPage] to fetch next page of data. 13 : /// 14 : /// [T] - the type of list elements. 15 : class PagedListBloc<T> extends PagedListFilterBloc<T, Null> { 16 1 : PagedListBloc(PagedListRepository<T> pagedListRepository) 17 0 : : assert(pagedListRepository != null), 18 2 : super(_PagedListRepositoryAdapter<T>(pagedListRepository)); 19 : } 20 : 21 : class _PagedListRepositoryAdapter<T> 22 : implements PagedListFilterRepository<T, Null> { 23 : final PagedListRepository<T> pagedListRepository; 24 : 25 1 : _PagedListRepositoryAdapter(this.pagedListRepository); 26 : 27 0 : @override 28 0 : Future<List<T>> getAll(Page page) => pagedListRepository.getAll(page); 29 : 30 1 : @override 31 : Future<List<T>> getBy(Page page, Null filter) => 32 2 : pagedListRepository.getAll(page); 33 : }