reduce<Content extends Object> static method

  1. @visibleForTesting
LoaderState<Content> reduce<Content extends Object>(
  1. LoaderState<Content> state,
  2. LoaderPartialStateChange<Content> change,
  3. int _
)

Return new LoaderState from old state and partial state change

Implementation

@visibleForTesting
static LoaderState<Content> reduce<Content extends Object>(
  LoaderState<Content> state,
  LoaderPartialStateChange<Content> change,
  int _,
) {
  return change.fold(
    onRefreshSuccess: (content) => state.rebuild((b) => b
      ..content = content
      ..error = null),
    onFetchLoading: () => state.rebuild((b) => b
      ..isLoading = true
      ..error = null),
    onFetchFailure: (error) => state.rebuild((b) => b
      ..isLoading = false
      ..error = error),
    onFetchSuccess: (content) => state.rebuild((b) => b
      ..isLoading = false
      ..error = null
      ..content = content),
  );
}