Line data Source code
1 : import 'package:flutter_bloc_patterns/base_list.dart'; 2 : import 'package:flutter_bloc_patterns/src/list/base/list_repository.dart'; 3 : import 'package:flutter_bloc_patterns/src/list/filter/filter_list_bloc.dart'; 4 : import 'package:flutter_bloc_patterns/src/list/filter/filter_list_repository.dart'; 5 : 6 : /// A basic list BLoC with no filtering or pagination. Thus it should be used 7 : /// with a reasonable small amount of data. 8 : /// 9 : /// Designed to collaborate with [ViewStateBuilder] for displaying data. 10 : /// 11 : /// Call [loadElements] to perform initial data fetch. 12 : /// Call [refreshElements] to perform a refresh. 13 : /// 14 : /// [T] - type of list items. 15 : class ListBloc<T> extends FilterListBloc<T, void> { 16 1 : ListBloc(ListRepository<T> listRepository) 17 0 : : assert(listRepository != null), 18 2 : super(_FilterRepositoryAdapter(listRepository)); 19 : } 20 : 21 : class _FilterRepositoryAdapter<T> extends FilterListRepository<T, void> { 22 : final ListRepository<T> listRepository; 23 : 24 1 : _FilterRepositoryAdapter(this.listRepository); 25 : 26 1 : @override 27 2 : Future<List<T>> getAll() => listRepository.getAll(); 28 : 29 0 : @override 30 0 : Future<List<T>> getBy(void filter) => listRepository.getAll(); 31 : }