maybeWhen<R> method
R
maybeWhen<R>({
- R data(})?,
- R error()?,
- R loading()?,
- required R orElse(),
Implementation
R maybeWhen<R>({
R Function(Iterable<T> data, {bool isLoading})? data,
R Function(Object, StackTrace?)? error,
R Function()? loading,
required R Function() orElse,
}) {
final snapshotWithError =
singleWhereOrNull((snapshot) => snapshot.hasError);
final hasData = any((snapshot) => snapshot.hasData);
if (snapshotWithError != null && error != null) {
return error(snapshotWithError.error!, snapshotWithError.stackTrace);
}
if (hasData && data != null) {
return data(
map((snapshot) => snapshot.data!).toList(),
isLoading: any((snapshot) {
return snapshot.connectionState == ConnectionState.active;
}),
);
}
if (loading != null) {
return loading();
}
return orElse();
}