Fix for product list
This commit is contained in:
parent
231c03ddff
commit
f9f51daaf4
|
|
@ -107,6 +107,8 @@ class AppState {
|
||||||
case 5:
|
case 5:
|
||||||
return this.company5;
|
return this.company5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return this.company1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProductState product() {
|
ProductState product() {
|
||||||
|
|
|
||||||
|
|
@ -43,12 +43,15 @@ List<ProductEntity> _toggleAll(List<ProductEntity> products, ToggleAllAction act
|
||||||
*/
|
*/
|
||||||
|
|
||||||
ProductState _setLoadedProducts(ProductState productState, ProductsLoadedAction action) {
|
ProductState _setLoadedProducts(ProductState productState, ProductsLoadedAction action) {
|
||||||
return ProductState().copyWith(
|
return productState.copyWith(
|
||||||
map: action.products,
|
map: Map.fromIterable(action.products,
|
||||||
list: action.products,
|
key: (item) => item.id,
|
||||||
|
value: (item) => item
|
||||||
|
),
|
||||||
|
list: action.products.map((product) => product.id).toList(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
ProductState _setNoProducts(ProductState productState, ProductsNotLoadedAction action) {
|
ProductState _setNoProducts(ProductState productState, ProductsNotLoadedAction action) {
|
||||||
return [];
|
return productState;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,8 @@ class _ViewModel {
|
||||||
});
|
});
|
||||||
|
|
||||||
factory _ViewModel.from(Store<AppState> store, int id) {
|
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(
|
return _ViewModel(
|
||||||
product: product,
|
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/app/loading_indicator.dart';
|
||||||
import 'package:invoiceninja/ui/product/product_item.dart';
|
import 'package:invoiceninja/ui/product/product_item.dart';
|
||||||
import 'package:invoiceninja/keys.dart';
|
import 'package:invoiceninja/keys.dart';
|
||||||
|
import 'package:invoiceninja/redux/product/product_state.dart';
|
||||||
|
|
||||||
class ProductList extends StatelessWidget {
|
class ProductList extends StatelessWidget {
|
||||||
final List<ProductEntity> products;
|
final ProductState products;
|
||||||
final Function(ProductEntity, bool) onCheckboxChanged;
|
final Function(ProductEntity, bool) onCheckboxChanged;
|
||||||
|
|
||||||
ProductList({
|
ProductList({
|
||||||
|
|
@ -29,9 +30,9 @@ class ProductList extends StatelessWidget {
|
||||||
ListView _buildListView() {
|
ListView _buildListView() {
|
||||||
return ListView.builder(
|
return ListView.builder(
|
||||||
key: NinjaKeys.productList,
|
key: NinjaKeys.productList,
|
||||||
itemCount: products.length,
|
itemCount: products.list.length,
|
||||||
itemBuilder: (BuildContext context, int index) {
|
itemBuilder: (BuildContext context, int index) {
|
||||||
final product = products[index];
|
final product = products.map[products.list[index]];
|
||||||
|
|
||||||
return ProductItem(
|
return ProductItem(
|
||||||
product: product,
|
product: product,
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ import 'package:invoiceninja/data/models/models.dart';
|
||||||
import 'package:invoiceninja/ui/product/product_list.dart';
|
import 'package:invoiceninja/ui/product/product_list.dart';
|
||||||
import 'package:invoiceninja/redux/product/product_selectors.dart';
|
import 'package:invoiceninja/redux/product/product_selectors.dart';
|
||||||
import 'package:invoiceninja/redux/app/app_state.dart';
|
import 'package:invoiceninja/redux/app/app_state.dart';
|
||||||
|
import 'package:invoiceninja/redux/product/product_state.dart';
|
||||||
|
|
||||||
class ProductListVM extends StatelessWidget {
|
class ProductListVM extends StatelessWidget {
|
||||||
ProductListVM({Key key}) : super(key: key);
|
ProductListVM({Key key}) : super(key: key);
|
||||||
|
|
@ -26,7 +27,7 @@ class ProductListVM extends StatelessWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ViewModel {
|
class _ViewModel {
|
||||||
final List<ProductEntity> products;
|
final ProductState products;
|
||||||
final bool loading;
|
final bool loading;
|
||||||
final Function(ProductEntity, bool) onCheckboxChanged;
|
final Function(ProductEntity, bool) onCheckboxChanged;
|
||||||
|
|
||||||
|
|
@ -38,10 +39,13 @@ class _ViewModel {
|
||||||
|
|
||||||
static _ViewModel fromStore(Store<AppState> store) {
|
static _ViewModel fromStore(Store<AppState> store) {
|
||||||
return _ViewModel(
|
return _ViewModel(
|
||||||
|
products: store.state.product(),
|
||||||
|
/*
|
||||||
products: filteredProductsSelector(
|
products: filteredProductsSelector(
|
||||||
productsSelector(store.state),
|
productsSelector(store.state),
|
||||||
//activeFilterSelector(store.state),
|
//activeFilterSelector(store.state),
|
||||||
),
|
),
|
||||||
|
*/
|
||||||
loading: store.state.isLoading,
|
loading: store.state.isLoading,
|
||||||
onCheckboxChanged: (product, complete) {
|
onCheckboxChanged: (product, complete) {
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue