Client/product documents
This commit is contained in:
parent
6f15c39ec5
commit
38b98b40a0
|
|
@ -51,6 +51,9 @@ class UpdateProduct implements PersistUI {
|
|||
final ProductEntity product;
|
||||
}
|
||||
|
||||
|
||||
class LoadProductRequest implements StartLoading {}
|
||||
|
||||
class LoadProduct {
|
||||
LoadProduct({this.completer, this.productId});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:invoiceninja_flutter/.env.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||
|
|
@ -19,6 +20,7 @@ List<Middleware<AppState>> createStoreProductsMiddleware([
|
|||
final viewProduct = _viewProduct();
|
||||
final editProduct = _editProduct();
|
||||
final loadProducts = _loadProducts(repository);
|
||||
final loadProduct = _loadProduct(repository);
|
||||
final saveProduct = _saveProduct(repository);
|
||||
final archiveProduct = _archiveProduct(repository);
|
||||
final deleteProduct = _deleteProduct(repository);
|
||||
|
|
@ -30,6 +32,7 @@ List<Middleware<AppState>> createStoreProductsMiddleware([
|
|||
TypedMiddleware<AppState, ViewProduct>(viewProduct),
|
||||
TypedMiddleware<AppState, EditProduct>(editProduct),
|
||||
TypedMiddleware<AppState, LoadProducts>(loadProducts),
|
||||
TypedMiddleware<AppState, LoadProduct>(loadProduct),
|
||||
TypedMiddleware<AppState, SaveProductRequest>(saveProduct),
|
||||
TypedMiddleware<AppState, ArchiveProductsRequest>(archiveProduct),
|
||||
TypedMiddleware<AppState, DeleteProductsRequest>(deleteProduct),
|
||||
|
|
@ -186,6 +189,39 @@ Middleware<AppState> _saveProduct(ProductRepository repository) {
|
|||
};
|
||||
}
|
||||
|
||||
Middleware<AppState> _loadProduct(ProductRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as LoadProduct;
|
||||
final AppState state = store.state;
|
||||
|
||||
if (state.isLoading || Config.DEMO_MODE) {
|
||||
next(action);
|
||||
return;
|
||||
}
|
||||
|
||||
store.dispatch(LoadProductRequest());
|
||||
repository
|
||||
.loadItem(store.state.credentials, action.productId)
|
||||
.then((product) {
|
||||
store.dispatch(LoadProductSuccess(product));
|
||||
|
||||
if (action.completer != null) {
|
||||
action.completer.complete(null);
|
||||
}
|
||||
}).catchError((Object error) {
|
||||
print(error);
|
||||
store.dispatch(LoadProductFailure(error));
|
||||
if (action.completer != null) {
|
||||
action.completer.completeError(error);
|
||||
}
|
||||
});
|
||||
|
||||
next(action);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
Middleware<AppState> _loadProducts(ProductRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as LoadProducts;
|
||||
|
|
|
|||
Loading…
Reference in New Issue