when<T> method

  1. @ignoreGeneration
T when<T>({
  1. T loading()?,
  2. T loaded()?,
  3. T error()?,
  4. T onElse()?,
})
inherited

Implementation

@ignoreGeneration
T when<T>({
  T Function()? loading,
  T Function()? loaded,
  T Function()? error,
  T Function()? onElse,
}) {
  assert(
    loading != null || onElse != null,
    'You must define either [onLoading] or [onElse]',
  );
  assert(
    loaded != null || onElse != null,
    'You must define either [onLoaded] or [onElse]',
  );
  assert(
    error != null || onElse != null,
    'You must define either [onError] or [onElse]',
  );

  if (isLoading) {
    return loading?.call() ?? onElse!();
  }
  if (isLoaded) {
    return loaded?.call() ?? onElse!();
  }
  return error?.call() ?? onElse!();
}