load method
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;
}
}