You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
853 B
25 lines
853 B
import 'package:redux/redux.dart';
|
|
import 'package:thesis_shop/models/remote_resource.dart';
|
|
|
|
import '../actions/actions.dart';
|
|
import '../state.dart';
|
|
|
|
final productReducer = combineReducers<RemoteProducts>([
|
|
TypedReducer<RemoteProducts, FetchProductsAction>(fetchProducts),
|
|
TypedReducer<RemoteProducts, FetchProductsSucceededAction>(productFetched),
|
|
TypedReducer<RemoteProducts, FetchProductsFailedAction>(errorOccurred),
|
|
]);
|
|
|
|
RemoteProducts fetchProducts(
|
|
RemoteProducts state,
|
|
FetchProductsAction action,
|
|
) =>
|
|
const RemoteResource.loading();
|
|
|
|
RemoteProducts productFetched(
|
|
RemoteProducts state, FetchProductsSucceededAction action) =>
|
|
RemoteResource.finished(action.products);
|
|
|
|
RemoteProducts errorOccurred(
|
|
RemoteProducts state, FetchProductsFailedAction action) =>
|
|
RemoteResource.error(action.errorMessage);
|
|
|