load method

Future<void> load(
  1. [F? filter]
)

Implementation

Future<void> load([F? filter]) async {
  final f = filter ?? state.filter;

  emit(Data.loading(data: state.data, filter: f));

  try {
    final data = await loader(f);
    if (data == null || (data is Iterable && data.isEmpty)) {
      emit(Empty(filter: f));
    } else {
      emit(Data(data: data, filter: f));
    }
  } catch (e) {
    emit(Data.error(data: state.data, filter: f, error: e));
    rethrow;
  }
}