Fix for product list

This commit is contained in:
unknown 2018-05-22 23:08:40 -07:00
parent 231c03ddff
commit f9f51daaf4
5 changed files with 20 additions and 9 deletions

View File

@ -107,6 +107,8 @@ class AppState {
case 5:
return this.company5;
}
return this.company1;
}
ProductState product() {

View File

@ -43,12 +43,15 @@ List<ProductEntity> _toggleAll(List<ProductEntity> products, ToggleAllAction act
*/
ProductState _setLoadedProducts(ProductState productState, ProductsLoadedAction action) {
return ProductState().copyWith(
map: action.products,
list: action.products,
return productState.copyWith(
map: Map.fromIterable(action.products,
key: (item) => item.id,
value: (item) => item
),
list: action.products.map((product) => product.id).toList(),
);
}
ProductState _setNoProducts(ProductState productState, ProductsNotLoadedAction action) {
return [];
return productState;
}

View File

@ -47,7 +47,8 @@ class _ViewModel {
});
factory _ViewModel.from(Store<AppState> store, int id) {
final product = productSelector(productsSelector(store.state), id).value;
//final product = productSelector(productsSelector(store.state), id).value;
final product = store.state.product().map[id];
return _ViewModel(
product: product,

View File

@ -6,9 +6,10 @@ import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/app/loading_indicator.dart';
import 'package:invoiceninja/ui/product/product_item.dart';
import 'package:invoiceninja/keys.dart';
import 'package:invoiceninja/redux/product/product_state.dart';
class ProductList extends StatelessWidget {
final List<ProductEntity> products;
final ProductState products;
final Function(ProductEntity, bool) onCheckboxChanged;
ProductList({
@ -29,9 +30,9 @@ class ProductList extends StatelessWidget {
ListView _buildListView() {
return ListView.builder(
key: NinjaKeys.productList,
itemCount: products.length,
itemCount: products.list.length,
itemBuilder: (BuildContext context, int index) {
final product = products[index];
final product = products.map[products.list[index]];
return ProductItem(
product: product,

View File

@ -7,6 +7,7 @@ import 'package:invoiceninja/data/models/models.dart';
import 'package:invoiceninja/ui/product/product_list.dart';
import 'package:invoiceninja/redux/product/product_selectors.dart';
import 'package:invoiceninja/redux/app/app_state.dart';
import 'package:invoiceninja/redux/product/product_state.dart';
class ProductListVM extends StatelessWidget {
ProductListVM({Key key}) : super(key: key);
@ -26,7 +27,7 @@ class ProductListVM extends StatelessWidget {
}
class _ViewModel {
final List<ProductEntity> products;
final ProductState products;
final bool loading;
final Function(ProductEntity, bool) onCheckboxChanged;
@ -38,10 +39,13 @@ class _ViewModel {
static _ViewModel fromStore(Store<AppState> store) {
return _ViewModel(
products: store.state.product(),
/*
products: filteredProductsSelector(
productsSelector(store.state),
//activeFilterSelector(store.state),
),
*/
loading: store.state.isLoading,
onCheckboxChanged: (product, complete) {
/*