diff --git a/lib/core/viewModels/pharmacyModule/wishlist_view_model.dart b/lib/core/viewModels/pharmacyModule/wishlist_view_model.dart index 788b7f3c..9a619357 100644 --- a/lib/core/viewModels/pharmacyModule/wishlist_view_model.dart +++ b/lib/core/viewModels/pharmacyModule/wishlist_view_model.dart @@ -12,20 +12,9 @@ class WishListViewModel extends BaseViewModel{ bool hasError = false; -// Future getWishlistData() async { -// setState(ViewState.Busy); -// await _wishlistService.getWishlist(); -// if (_wishlistService.hasError) { -// error = _wishlistService.error; -// setState(ViewState.Error); -// } else { -// setState(ViewState.Idle); -// } -// } - - Future getWishlistData() async { + Future getWishlistData({isLocalLoader = false}) async { hasError = false; - setState(ViewState.Busy); + setState(isLocalLoader ? ViewState.BusyLocal:ViewState.Busy); await _wishlistService.getWishlist(); if (_wishlistService.hasError) { error = _wishlistService.error; diff --git a/lib/pages/packages_offers/OfferAndPackageDetailPage.dart b/lib/pages/packages_offers/OfferAndPackageDetailPage.dart index d0e69d14..a0b30dbd 100644 --- a/lib/pages/packages_offers/OfferAndPackageDetailPage.dart +++ b/lib/pages/packages_offers/OfferAndPackageDetailPage.dart @@ -31,8 +31,6 @@ class OfferAndPackagesDetailState extends State{ @override Widget build(BuildContext context) { - getLanguageID(); - return BaseView( onModelReady: (model){ viewModel = model; diff --git a/lib/pages/pharmacies/ProductCheckTypeWidget.dart b/lib/pages/pharmacies/ProductCheckTypeWidget.dart index edecff62..5ea79396 100644 --- a/lib/pages/pharmacies/ProductCheckTypeWidget.dart +++ b/lib/pages/pharmacies/ProductCheckTypeWidget.dart @@ -1,113 +1,58 @@ -import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; -import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart'; -import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; +import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/wishlist_view_model.dart'; +import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/widgets/pharmacy/product_tile.dart'; import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; -import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/wishlist_view_model.dart'; -import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; - -AppSharedPreferences sharedPref = AppSharedPreferences(); -var languageID; +import 'package:provider/provider.dart'; class ProductCheckTypeWidget extends StatefulWidget { - final List wishlist; - final bool isTrue; + final WishListViewModel model; - ProductCheckTypeWidget(this.isTrue, this.wishlist); + ProductCheckTypeWidget({this.model}); @override _ProductCheckTypeWidgetState createState() => _ProductCheckTypeWidgetState(); } class _ProductCheckTypeWidgetState extends State { - void initState() { - getLanguageID(); - } @override Widget build(BuildContext context) { - return widget.isTrue - ? ListView.builder( - itemCount: widget.wishlist.length, - itemBuilder: (BuildContext context, int index) { - return Column( - children: [ - Container( - child: widget.isTrue - ? productTile( - productName: languageID == 'ar' - ? widget.wishlist[index].product.namen - : widget.wishlist[index].product.name, - productPrice: widget.wishlist[index].subtotal, - productRate: double.parse( - widget.wishlist[index].subtotalVatRate), - productImage: - widget.wishlist[index].product.images[0].src, - showLine: widget.isTrue, - productID: widget.wishlist[index].product.id, - onDelete: deleteWishListItem, - - ) - : productTile( - productName: languageID == 'ar' - ? widget.wishlist[index].product.namen - : widget.wishlist[index].product.name, - productPrice: widget.wishlist[index].subtotal, - productRate: double.parse( - widget.wishlist[index].subtotalVatRate), - productImage: - widget.wishlist[index].product.images[0].src, - showLine: widget.isTrue, - onDelete: deleteWishListItem, - - ), - ), - Divider(height: 1, color: Colors.grey) - ], - ); - }) - : GridView.count( - crossAxisCount: 2, - children: List.generate( - widget.wishlist.length, - (index) => productTile( - productName: widget.wishlist[index].product.name, - productPrice: widget.wishlist[index].subtotal, - productRate: - double.parse(widget.wishlist[index].subtotalVatRate), - productImage: - widget.wishlist[index].product.images[0].src, - showLine: widget.isTrue, - )), + ProjectViewModel projectViewModel = Provider.of(context); + return ListView.builder( + itemCount: widget.model.wishListList.length, + itemBuilder: (BuildContext context, int index) { + return Column( + children: [ + Container( + child: productTile( + productName: projectViewModel.isArabic + ? widget.model.wishListList[index].product.namen + : widget.model.wishListList[index].product.name, + productPrice: widget.model.wishListList[index].subtotal, + productRate: double.parse(widget.model.wishListList[index].subtotalVatRate), + productImage: widget.model.wishListList[index].product.images[0].src, + productID: widget.model.wishListList[index].product.id, + onDelete: deleteWishListItem, + + ), + ), + Divider(height: 1, color: Colors.grey) + ], ); + }); } deleteWishListItem(itemID) async { ProductDetailViewModel x = new ProductDetailViewModel(); GifLoaderDialogUtils.showMyDialog(context); await x.deletWishlistData(itemID); - setState(() - async{ - await - //getWishlistData(); - Navigator.push(context, - FadePage(page: WishlistPage(false)), - ); - }); + await widget.model.getWishlistData(isLocalLoader: true); GifLoaderDialogUtils.hideDialog(context); - print("Delete"); } - getWishlistData() async { - WishListViewModel x = new WishListViewModel(); - await x.getWishlistData(); - } } -getLanguageID() async { - languageID = await sharedPref.getString(APP_LANGUAGE); -} diff --git a/lib/pages/pharmacies/wishlist.dart b/lib/pages/pharmacies/wishlist.dart index b75f709b..3d1c8114 100644 --- a/lib/pages/pharmacies/wishlist.dart +++ b/lib/pages/pharmacies/wishlist.dart @@ -5,68 +5,61 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; -class WishlistPage extends StatefulWidget { - bool showBar; - WishlistPage(this.showBar); - @override - _WishlistPageState createState() => _WishlistPageState(); -} - -class _WishlistPageState extends State { - bool isTrue = true; +class WishlistPage extends StatelessWidget { + const WishlistPage({Key key}) : super(key: key); + @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getWishlistData(), builder: (_, model, wi) => AppScaffold( appBarTitle: TranslationBase.of(context).wishlist, - isShowAppBar: widget.showBar, + isShowAppBar: true, isShowDecPage: false, isPharmacy: true, baseViewModel: model, body: model.wishListList.length == 0 ? Container( - child: Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - 'assets/images/new-design/empty_box.png', - width: 100, - height: 100, - fit: BoxFit.cover, - ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - 'There is no data', - style: TextStyle(fontSize: 30), - ), - ) - ], + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsets.all(8.0), + child: Image.asset( + 'assets/images/new-design/empty_box.png', + width: 100, + height: 100, + fit: BoxFit.cover, ), ), - ) + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + 'There is no data', + style: TextStyle(fontSize: 30), + ), + ) + ], + ), + ), + ) : Container( - child: Column( - children: [ - Expanded( - flex: 20, - child: Container( - width: double.infinity, - height: - MediaQuery.of(context).size.height * 0.85, //250, - child: - ProductCheckTypeWidget(isTrue, model.wishListList), - ), - ), - ], + child: Column( + children: [ + Expanded( + flex: 20, + child: Container( + width: double.infinity, + height: MediaQuery.of(context).size.height * 0.85, //250, + child: ProductCheckTypeWidget(model: model,), ), ), + ], + ), + ), ), ); } } + diff --git a/lib/pages/pharmacy/profile/profile.dart b/lib/pages/pharmacy/profile/profile.dart index 3cf28592..a82a74eb 100644 --- a/lib/pages/pharmacy/profile/profile.dart +++ b/lib/pages/pharmacy/profile/profile.dart @@ -235,9 +235,7 @@ class _ProfilePageState extends State { onTap: () { Navigator.push( context, - MaterialPageRoute( - builder: (context) => - WishlistPage(true))); + FadePage(page: WishlistPage())); }, child: Column( children: [