Fix for product list
This commit is contained in:
parent
231c03ddff
commit
f9f51daaf4
|
|
@ -107,6 +107,8 @@ class AppState {
|
|||
case 5:
|
||||
return this.company5;
|
||||
}
|
||||
|
||||
return this.company1;
|
||||
}
|
||||
|
||||
ProductState product() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue