onOrElse<R> method

R onOrElse<R>({
  1. R onIdle()?,
  2. R onWaiting()?,
  3. R onError(
    1. dynamic error,
    2. VoidCallback refreshError
    )?,
  4. R onData(
    1. T data
    )?,
  5. required R orElse(
    1. T data
    ),
})

Implementation

R onOrElse<R>({
  R Function()? onIdle,
  R Function()? onWaiting,
  R Function(dynamic error, VoidCallback refreshError)? onError,
  R Function(T data)? onData,
  required R Function(T data) orElse,
}) {
  if (isIdle && onIdle != null) {
    return onIdle();
  }
  if (isWaiting && onWaiting != null) {
    return onWaiting();
  }
  if (hasError && onError != null) {
    return onError(error, onErrorRefresher!);
  }
  if (hasData && onData != null) {
    return onData(data as T);
  }
  return orElse(data as T);
}