invoice/lib/redux/product/product_selectors.dart

38 lines
1.1 KiB
Dart

import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/utils/optional.dart';
bool isLoadingSelector(AppState state) => state.isLoading;
enum VisibilityFilter {all, active, completed}
//VisibilityFilter activeFilterSelector(AppState state) => state.activeFilter;
List<ProductEntity> productsSelector(AppState state) => state.products;
List<ProductEntity> filteredProductsSelector(
List<ProductEntity> products,
//VisibilityFilter activeFilter,
) {
return products.where((product) {
return true;
/*
if (activeFilter == VisibilityFilter.all) {
return true;
} else if (activeFilter == VisibilityFilter.active) {
return !product.complete;
} else if (activeFilter == VisibilityFilter.completed) {
return product.complete;
}
*/
}).toList();
}
Optional<ProductEntity> productSelector(List<ProductEntity> products, int id) {
try {
return Optional.of(products.firstWhere((product) => product.id == id));
} catch (e) {
return Optional.absent();
}
}