1
0
Fork 0
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.
 
 
 
 
 
thesis_shop/lib/redux/reducers/product_reducer.dart

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);