fix wish list issue

merge-update-with-lab-changes
Mohammad Aljammal 4 years ago
parent 1c1fcb00cb
commit 9e31d497ed

@ -12,20 +12,9 @@ class WishListViewModel extends BaseViewModel{
bool hasError = false; bool hasError = false;
// Future getWishlistData() async { Future getWishlistData({isLocalLoader = false}) async {
// setState(ViewState.Busy);
// await _wishlistService.getWishlist();
// if (_wishlistService.hasError) {
// error = _wishlistService.error;
// setState(ViewState.Error);
// } else {
// setState(ViewState.Idle);
// }
// }
Future getWishlistData() async {
hasError = false; hasError = false;
setState(ViewState.Busy); setState(isLocalLoader ? ViewState.BusyLocal:ViewState.Busy);
await _wishlistService.getWishlist(); await _wishlistService.getWishlist();
if (_wishlistService.hasError) { if (_wishlistService.hasError) {
error = _wishlistService.error; error = _wishlistService.error;

@ -31,8 +31,6 @@ class OfferAndPackagesDetailState extends State<OfferAndPackagesDetail>{
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
getLanguageID();
return BaseView<PackagesViewModel>( return BaseView<PackagesViewModel>(
onModelReady: (model){ onModelReady: (model){
viewModel = model; viewModel = model;

@ -1,113 +1,58 @@
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/wishlist_view_model.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/widgets/pharmacy/product_tile.dart'; import 'package:diplomaticquarterapp/widgets/pharmacy/product_tile.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/product_detail_view_model.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/wishlist_view_model.dart'; import 'package:provider/provider.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
AppSharedPreferences sharedPref = AppSharedPreferences();
var languageID;
class ProductCheckTypeWidget extends StatefulWidget { class ProductCheckTypeWidget extends StatefulWidget {
final List<dynamic> wishlist; final WishListViewModel model;
final bool isTrue;
ProductCheckTypeWidget(this.isTrue, this.wishlist); ProductCheckTypeWidget({this.model});
@override @override
_ProductCheckTypeWidgetState createState() => _ProductCheckTypeWidgetState(); _ProductCheckTypeWidgetState createState() => _ProductCheckTypeWidgetState();
} }
class _ProductCheckTypeWidgetState extends State<ProductCheckTypeWidget> { class _ProductCheckTypeWidgetState extends State<ProductCheckTypeWidget> {
void initState() {
getLanguageID();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return widget.isTrue ProjectViewModel projectViewModel = Provider.of(context);
? ListView.builder( return ListView.builder(
itemCount: widget.wishlist.length, itemCount: widget.model.wishListList.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Column( return Column(
children: [ children: [
Container( Container(
child: widget.isTrue child: productTile(
? productTile( productName: projectViewModel.isArabic
productName: languageID == 'ar' ? widget.model.wishListList[index].product.namen
? widget.wishlist[index].product.namen : widget.model.wishListList[index].product.name,
: widget.wishlist[index].product.name, productPrice: widget.model.wishListList[index].subtotal,
productPrice: widget.wishlist[index].subtotal, productRate: double.parse(widget.model.wishListList[index].subtotalVatRate),
productRate: double.parse( productImage: widget.model.wishListList[index].product.images[0].src,
widget.wishlist[index].subtotalVatRate), productID: widget.model.wishListList[index].product.id,
productImage: onDelete: deleteWishListItem,
widget.wishlist[index].product.images[0].src,
showLine: widget.isTrue, ),
productID: widget.wishlist[index].product.id, ),
onDelete: deleteWishListItem, Divider(height: 1, color: Colors.grey)
],
)
: 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,
)),
); );
});
} }
deleteWishListItem(itemID) async { deleteWishListItem(itemID) async {
ProductDetailViewModel x = new ProductDetailViewModel(); ProductDetailViewModel x = new ProductDetailViewModel();
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await x.deletWishlistData(itemID); await x.deletWishlistData(itemID);
setState(() await widget.model.getWishlistData(isLocalLoader: true);
async{
await
//getWishlistData();
Navigator.push(context,
FadePage(page: WishlistPage(false)),
);
});
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
print("Delete");
} }
getWishlistData() async {
WishListViewModel x = new WishListViewModel();
await x.getWishlistData();
}
} }
getLanguageID() async {
languageID = await sharedPref.getString(APP_LANGUAGE);
}

@ -5,68 +5,61 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
class WishlistPage extends StatefulWidget { class WishlistPage extends StatelessWidget {
bool showBar; const WishlistPage({Key key}) : super(key: key);
WishlistPage(this.showBar);
@override
_WishlistPageState createState() => _WishlistPageState();
}
class _WishlistPageState extends State<WishlistPage> {
bool isTrue = true;
@override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<WishListViewModel>( return BaseView<WishListViewModel>(
onModelReady: (model) => model.getWishlistData(), onModelReady: (model) => model.getWishlistData(),
builder: (_, model, wi) => AppScaffold( builder: (_, model, wi) => AppScaffold(
appBarTitle: TranslationBase.of(context).wishlist, appBarTitle: TranslationBase.of(context).wishlist,
isShowAppBar: widget.showBar, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
isPharmacy: true, isPharmacy: true,
baseViewModel: model, baseViewModel: model,
body: model.wishListList.length == 0 body: model.wishListList.length == 0
? Container( ? Container(
child: Center( child: Center(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Image.asset( child: Image.asset(
'assets/images/new-design/empty_box.png', 'assets/images/new-design/empty_box.png',
width: 100, width: 100,
height: 100, height: 100,
fit: BoxFit.cover, fit: BoxFit.cover,
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'There is no data',
style: TextStyle(fontSize: 30),
),
)
],
), ),
), ),
) Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
'There is no data',
style: TextStyle(fontSize: 30),
),
)
],
),
),
)
: Container( : Container(
child: Column( child: Column(
children: [ children: [
Expanded( Expanded(
flex: 20, flex: 20,
child: Container( child: Container(
width: double.infinity, width: double.infinity,
height: height: MediaQuery.of(context).size.height * 0.85, //250,
MediaQuery.of(context).size.height * 0.85, //250, child: ProductCheckTypeWidget(model: model,),
child:
ProductCheckTypeWidget(isTrue, model.wishListList),
),
),
],
), ),
), ),
],
),
),
), ),
); );
} }
} }

@ -235,9 +235,7 @@ class _ProfilePageState extends State<PharmacyProfilePage> {
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( FadePage(page: WishlistPage()));
builder: (context) =>
WishlistPage(true)));
}, },
child: Column( child: Column(
children: <Widget>[ children: <Widget>[

Loading…
Cancel
Save