diff --git a/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart b/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart index 4aa01776..e9f2a3d4 100644 --- a/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart +++ b/lib/core/viewModels/pharmacyModule/OrderPreviewViewModel.dart @@ -68,25 +68,26 @@ class OrderPreviewViewModel extends BaseViewModel { } Future changeProductQuantity(ShoppingCart product) async { - setState(ViewState.Busy); + setState(ViewState.BusyLocal); var resp = await _orderService.changeProductQuantity(product.id, product); - var object = _handleGetShoppingCartResponse(resp); + if (_orderService.hasError) { error = _orderService.error; setState(ViewState.ErrorLocal); } else { + var object = _handleGetShoppingCartResponse(resp); setState(ViewState.Idle); } - return object; + // return object; } Future deleteProduct(ShoppingCart product) async { - setState(ViewState.Busy); + setState(ViewState.BusyLocal); var resp = await _orderService.deleteProduct(product.id); var object = _handleGetShoppingCartResponse(resp); if (_orderService.hasError) { error = _orderService.error; - setState(ViewState.Error); + setState(ViewState.ErrorLocal); } else { setState(ViewState.Idle); } diff --git a/lib/pages/pharmacies/screens/cart-page/cart-order-page.dart b/lib/pages/pharmacies/screens/cart-page/cart-order-page.dart index 9d096053..70858fa9 100644 --- a/lib/pages/pharmacies/screens/cart-page/cart-order-page.dart +++ b/lib/pages/pharmacies/screens/cart-page/cart-order-page.dart @@ -57,7 +57,7 @@ class _CartOrderPageState extends State { isMainPharmacyPages: true, showPharmacyCart: false, baseViewModel: model, - backButtonTab: (){ + backButtonTab: () { widget.changeTab(0); }, backgroundColor: Colors.white, @@ -99,32 +99,34 @@ class _CartOrderPageState extends State { : 0, (index) => ProductOrderItem( model.cartResponse - .shoppingCarts[index], () { - print(model.cartResponse - .shoppingCarts[index].quantity); - model - .changeProductQuantity(model - .cartResponse + .shoppingCarts[index], () async { + GifLoaderDialogUtils.showMyDialog( + context); + await model.changeProductQuantity(model + .cartResponse.shoppingCarts[index]); + if (model.state != ViewState.Error) { + // appScaffold.appBar.badgeUpdater( + // '${value.quantityCount ?? 0}'); + } + if (model.state == + ViewState.ErrorLocal) { + Utils.showErrorToast(model.error); + } + GifLoaderDialogUtils.hideDialog( + context); + }, () async { + GifLoaderDialogUtils.showMyDialog( + context); + await model + .deleteProduct(model.cartResponse .shoppingCarts[index]) .then((value) { - if (model.state != ViewState.Error) { - // appScaffold.appBar.badgeUpdater( - // '${value.quantityCount ?? 0}'); - } if (model.state == ViewState.ErrorLocal) { Utils.showErrorToast(model.error); } - }); - }, () { - model - .deleteProduct(model.cartResponse - .shoppingCarts[index]) - .then((value) { - if (model.state != ViewState.Error) { - // appScaffold.appBar.badgeUpdater( - // '${value.quantityCount ?? 0}'); - } + GifLoaderDialogUtils.hideDialog( + context); }); })) ], @@ -254,7 +256,7 @@ class _CartOrderPageState extends State { ? height * 0.15 : 0, color: Colors.white, - child: OrderBottomWidget(model.addresses, height, model), + child: OrderBottomWidget(model.addresses, height, model, isLoading), ), ); } @@ -272,8 +274,9 @@ class OrderBottomWidget extends StatefulWidget { final List addresses; final double height; final OrderPreviewViewModel model; + final bool isLoading; - OrderBottomWidget(this.addresses, this.height, this.model); + OrderBottomWidget(this.addresses, this.height, this.model, this.isLoading); @override _OrderBottomWidgetState createState() => _OrderBottomWidgetState(); @@ -286,7 +289,7 @@ class _OrderBottomWidgetState extends State { Widget build(BuildContext context) { ProjectViewModel projectProvider = Provider.of(context); - return !(widget.model.cartResponse.shoppingCarts == null || + return ! widget.isLoading && !(widget.model.cartResponse.shoppingCarts == null || widget.model.cartResponse.shoppingCarts.length == 0) ? Column( crossAxisAlignment: CrossAxisAlignment.start,