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