Slide to delete
This commit is contained in:
parent
a3cd75fa99
commit
b1364d005a
|
|
@ -15,7 +15,7 @@ import 'package:invoiceninja/redux/dashboard/dashboard_middleware.dart';
|
|||
import 'package:invoiceninja/redux/product/product_actions.dart';
|
||||
import 'package:invoiceninja/redux/product/product_middleware.dart';
|
||||
import 'package:invoiceninja/utils/localization.dart';
|
||||
import 'package:redux_logging/redux_logging.dart';
|
||||
//import 'package:redux_logging/redux_logging.dart';
|
||||
|
||||
void main() {
|
||||
final store = Store<AppState>(
|
||||
|
|
@ -26,7 +26,7 @@ void main() {
|
|||
..addAll(createStoreDashboardMiddleware())
|
||||
..addAll(createStoreProductsMiddleware())
|
||||
..addAll([
|
||||
LoggingMiddleware.printer(),
|
||||
//LoggingMiddleware.printer(),
|
||||
])
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -57,8 +57,8 @@ class ArchiveProductSuccess {
|
|||
ArchiveProductSuccess(this.product);
|
||||
}
|
||||
class ArchiveProductFailure {
|
||||
final int productId;
|
||||
ArchiveProductFailure(this.productId);
|
||||
final ProductEntity product;
|
||||
ArchiveProductFailure(this.product);
|
||||
}
|
||||
|
||||
class DeleteProductRequest {
|
||||
|
|
@ -72,8 +72,8 @@ class DeleteProductSuccess {
|
|||
DeleteProductSuccess(this.product);
|
||||
}
|
||||
class DeleteProductFailure {
|
||||
final int productId;
|
||||
DeleteProductFailure(this.productId);
|
||||
final ProductEntity product;
|
||||
DeleteProductFailure(this.product);
|
||||
}
|
||||
|
||||
class RestoreProductRequest {
|
||||
|
|
@ -86,8 +86,8 @@ class RestoreProductSuccess {
|
|||
RestoreProductSuccess(this.product);
|
||||
}
|
||||
class RestoreProductFailure {
|
||||
final int productId;
|
||||
RestoreProductFailure(this.productId);
|
||||
final ProductEntity product;
|
||||
RestoreProductFailure(this.product);
|
||||
}
|
||||
|
||||
class AddProductSuccess {
|
||||
|
|
|
|||
|
|
@ -31,15 +31,15 @@ List<Middleware<AppState>> createStoreProductsMiddleware([
|
|||
|
||||
Middleware<AppState> _archiveProduct(ProductsRepository repository) {
|
||||
return (Store<AppState> store, action, NextDispatcher next) {
|
||||
var product = store.state.productState().map[action.productId];
|
||||
var origProduct = store.state.productState().map[action.productId];
|
||||
repository
|
||||
.saveData(store.state.selectedCompany(), store.state.authState,
|
||||
product, EntityAction.archive)
|
||||
origProduct, EntityAction.archive)
|
||||
.then((product) {
|
||||
store.dispatch(ArchiveProductSuccess(product));
|
||||
}).catchError((error) {
|
||||
print(error);
|
||||
store.dispatch(ArchiveProductFailure(action.productId));
|
||||
store.dispatch(ArchiveProductFailure(origProduct));
|
||||
});
|
||||
|
||||
next(action);
|
||||
|
|
@ -48,15 +48,15 @@ Middleware<AppState> _archiveProduct(ProductsRepository repository) {
|
|||
|
||||
Middleware<AppState> _deleteProduct(ProductsRepository repository) {
|
||||
return (Store<AppState> store, action, NextDispatcher next) {
|
||||
var product = store.state.productState().map[action.productId];
|
||||
var origProduct = store.state.productState().map[action.productId];
|
||||
repository
|
||||
.saveData(store.state.selectedCompany(), store.state.authState,
|
||||
product, EntityAction.delete)
|
||||
origProduct, EntityAction.delete)
|
||||
.then((product) {
|
||||
store.dispatch(DeleteProductSuccess(product));
|
||||
}).catchError((error) {
|
||||
print(error);
|
||||
store.dispatch(DeleteProductFailure(action.productId));
|
||||
store.dispatch(DeleteProductFailure(origProduct));
|
||||
});
|
||||
|
||||
next(action);
|
||||
|
|
@ -65,6 +65,17 @@ Middleware<AppState> _deleteProduct(ProductsRepository repository) {
|
|||
|
||||
Middleware<AppState> _restoreProduct(ProductsRepository repository) {
|
||||
return (Store<AppState> store, action, NextDispatcher next) {
|
||||
var origProduct = store.state.productState().map[action.productId];
|
||||
repository
|
||||
.saveData(store.state.selectedCompany(), store.state.authState,
|
||||
origProduct, EntityAction.restore)
|
||||
.then((product) {
|
||||
store.dispatch(RestoreProductSuccess(product));
|
||||
}).catchError((error) {
|
||||
print(error);
|
||||
store.dispatch(RestoreProductFailure(origProduct));
|
||||
});
|
||||
|
||||
next(action);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,8 +52,13 @@ final productsReducer = combineReducers<ProductState>([
|
|||
TypedReducer<ProductState, ArchiveProductSuccess>(_archiveProductSuccess),
|
||||
TypedReducer<ProductState, ArchiveProductFailure>(_archiveProductFailure),
|
||||
|
||||
TypedReducer<ProductState, DeleteProductRequest>(_deleteProductRequest),
|
||||
TypedReducer<ProductState, DeleteProductSuccess>(_deleteProductSuccess),
|
||||
TypedReducer<ProductState, DeleteProductFailure>(_deleteProductFailure),
|
||||
|
||||
TypedReducer<ProductState, RestoreProductRequest>(_restoreProductRequest),
|
||||
TypedReducer<ProductState, RestoreProductSuccess>(_restoreProductSuccess),
|
||||
TypedReducer<ProductState, RestoreProductFailure>(_restoreProductFailure),
|
||||
]);
|
||||
|
||||
ProductState _archiveProductRequest(ProductState productState, ArchiveProductRequest action) {
|
||||
|
|
@ -73,8 +78,16 @@ ProductState _archiveProductSuccess(ProductState productState, ArchiveProductSuc
|
|||
|
||||
ProductState _archiveProductFailure(ProductState productState, ArchiveProductFailure action) {
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.productId].rebuild((c) => c
|
||||
..archivedAt = null
|
||||
..map[action.product.id] = action.product
|
||||
);
|
||||
}
|
||||
|
||||
ProductState _deleteProductRequest(ProductState productState, DeleteProductRequest action) {
|
||||
var product = productState.map[action.productId];
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.productId] = product.rebuild((b) => b
|
||||
..archivedAt = DateTime.now().millisecondsSinceEpoch
|
||||
..isDeleted = true
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
@ -85,12 +98,36 @@ ProductState _deleteProductSuccess(ProductState productState, DeleteProductSucce
|
|||
);
|
||||
}
|
||||
|
||||
ProductState _deleteProductFailure(ProductState productState, DeleteProductFailure action) {
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.product.id] = action.product
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
ProductState _restoreProductRequest(ProductState productState, RestoreProductRequest action) {
|
||||
var product = productState.map[action.productId];
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.productId] = product.rebuild((b) => b
|
||||
..archivedAt = null
|
||||
..isDeleted = false
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
ProductState _restoreProductSuccess(ProductState productState, RestoreProductSuccess action) {
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.product.id] = action.product
|
||||
);
|
||||
}
|
||||
|
||||
ProductState _restoreProductFailure(ProductState productState, RestoreProductFailure action) {
|
||||
return productState.rebuild((b) => b
|
||||
..map[action.product.id] = action.product
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
ProductState _addProduct(
|
||||
ProductState productState, AddProductSuccess action) {
|
||||
return productState.rebuild((b) => b
|
||||
|
|
|
|||
Loading…
Reference in New Issue