fix bugs on wish list

merge-update-with-lab-changes
Elham Rababh 5 years ago
parent b0b278a7e3
commit 3dc28d318a

@ -1555,6 +1555,7 @@ const Map localizedValues = {
"quantitySize": {"en": "Quantity", "ar": "كميه"}, "quantitySize": {"en": "Quantity", "ar": "كميه"},
"addToCart": {"en": "Add to Cart", "ar": "إضف للسلة"}, "addToCart": {"en": "Add to Cart", "ar": "إضف للسلة"},
"addToWishlist": {"en": "Add to Wishlist", "ar": "اضف للمفضلة"}, "addToWishlist": {"en": "Add to Wishlist", "ar": "اضف للمفضلة"},
"removeFromWishlist": {"en": "Remove From Wishlist", "ar": "احذف للمفضلة"},
"noData": {"en": "There is no data", "ar": "لايوجد بيانات"}, "noData": {"en": "There is no data", "ar": "لايوجد بيانات"},
"no_data": {"en": "No data", "ar": "لايوجد بيانات"}, "no_data": {"en": "No data", "ar": "لايوجد بيانات"},
"buyNow": {"en": "buy now", "ar": "إشتري الان"}, "buyNow": {"en": "buy now", "ar": "إشتري الان"},

@ -45,7 +45,6 @@ class __ProductDetailPageState extends State<ProductDetailPage>{
bool isInWishList = false; bool isInWishList = false;
int quantity = 0; int quantity = 0;
checkWishlist() async { checkWishlist() async {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
ProductDetailViewModel model = new ProductDetailViewModel(); ProductDetailViewModel model = new ProductDetailViewModel();
@ -98,10 +97,13 @@ class __ProductDetailPageState extends State<ProductDetailPage>{
product: widget.product, product: widget.product,
quantity: quantity, quantity: quantity,
model: model, model: model,
addToWishlistFunction: () { addToWishlistFunction: () async {
addToWishlistFunction(itemID:itemID,model:model); await addToWishlistFunction(itemID: itemID, model: model);
setState(() {}); },
deleteFromWishlistFunction: () async {
await deleteFromWishlistFunction(itemID: itemID, model: model);
}, },
isInWishList:isInWishList
), ),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Column( child: Column(
@ -138,11 +140,15 @@ class __ProductDetailPageState extends State<ProductDetailPage>{
setState(() {}); setState(() {});
}, },
deleteFromWishlistFunction: (item) { deleteFromWishlistFunction: (item) {
deleteFromWishlistFunction(itemID: item, model: model); deleteFromWishlistFunction(
itemID: item, model: model);
setState(() {}); setState(() {});
}, },
notifyMeWhenAvailable: (context, itemId) { notifyMeWhenAvailable: (context, itemId) {
notifyMeWhenAvailable(itemId:itemId, customerId: customerId, model: model); notifyMeWhenAvailable(
itemId: itemId,
customerId: customerId,
model: model);
}, },
isInWishList: isInWishList, isInWishList: isInWishList,
), ),
@ -215,12 +221,14 @@ class __ProductDetailPageState extends State<ProductDetailPage>{
children: [ children: [
FlatButton( FlatButton(
onPressed: () async { onPressed: () async {
if(widget.product.approvedTotalReviews>0) { if (widget.product.approvedTotalReviews >
0) {
GifLoaderDialogUtils.showMyDialog( GifLoaderDialogUtils.showMyDialog(
context); context);
await model.getProductReviewsData( await model.getProductReviewsData(
widget.product.id); widget.product.id);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(
context);
} else { } else {
model.clearReview(); model.clearReview();
} }
@ -322,21 +330,27 @@ class __ProductDetailPageState extends State<ProductDetailPage>{
addToWishlistFunction({itemID, ProductDetailViewModel model}) async { addToWishlistFunction({itemID, ProductDetailViewModel model}) async {
isInWishList = true; isInWishList = true;
await model.addToWishlistData(itemID); await model.addToWishlistData(itemID);
setState(() {});
} }
deleteFromWishlistFunction({itemID, ProductDetailViewModel model}) async { deleteFromWishlistFunction({itemID, ProductDetailViewModel model}) async {
isInWishList = false; isInWishList = false;
await model.deleteWishlistData(itemID); await model.deleteWishlistData(itemID);
setState(() {});
} }
} }
addToCartFunction(
addToCartFunction({quantity, itemID, BuildContext context,ProductDetailViewModel model}) async { {quantity,
itemID,
BuildContext context,
ProductDetailViewModel model}) async {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await model.addToCartData(quantity, itemID); await model.addToCartData(quantity, itemID);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
} }
notifyMeWhenAvailable({itemId, customerId,ProductDetailViewModel model }) async { notifyMeWhenAvailable(
{itemId, customerId, ProductDetailViewModel model}) async {
await model.notifyMe(customerId, itemId); await model.notifyMe(customerId, itemId);
} }

@ -18,14 +18,18 @@ class ProductAppBar extends StatelessWidget with PreferredSizeWidget {
final ProductDetailViewModel model; final ProductDetailViewModel model;
final Function addToWishlistFunction; final Function addToWishlistFunction;
final Function deleteFromWishlistFunction;
final int quantity; final int quantity;
final bool isInWishList;
ProductAppBar( ProductAppBar(
{Key key, {Key key,
this.product, this.product,
this.model, this.model,
this.addToWishlistFunction, this.addToWishlistFunction,
this.quantity}) this.quantity,
this.deleteFromWishlistFunction,
this.isInWishList})
: super(key: key); : super(key: key);
AuthenticatedUserObject authenticatedUserObject = AuthenticatedUserObject authenticatedUserObject =
@ -76,8 +80,7 @@ class ProductAppBar extends StatelessWidget with PreferredSizeWidget {
icon: FontAwesomeIcons.ellipsisV, icon: FontAwesomeIcons.ellipsisV,
color: Colors.grey, color: Colors.grey,
onPress: () { onPress: () {
settingModalBottomSheet( settingModalBottomSheet(context);
context);
}, },
), ),
], ],
@ -106,38 +109,48 @@ class ProductAppBar extends StatelessWidget with PreferredSizeWidget {
title: Text( title: Text(
TranslationBase.of(context).addToCart, TranslationBase.of(context).addToCart,
), ),
onTap: () => { onTap: () async {
if (quantity > 0) if (quantity > 0) {
{ {
addToCartFunction( await addToCartFunction(
quantity: quantity, quantity: quantity,
itemID: itemID, itemID: itemID,
context: context, context: context,
model: model) model: model);
Navigator.of(context).pop();
} }
else } else {
{
AppToast.showErrorToast( AppToast.showErrorToast(
message: "you should add quantity") message: "you should add quantity");
} }
}), }),
ListTile( ListTile(
leading: Icon(Icons.favorite_border), leading: Icon(
title: Text( !isInWishList ? Icons.favorite_border : Icons.favorite,
TranslationBase.of(context).addToWishlist, color: !isInWishList ? Colors.white : Colors.red[800],
), ),
onTap: () { title: Text(
addToWishlistFunction(); isInWishList
} ? TranslationBase.of(context).removeFromWishlist
: TranslationBase.of(context).addToWishlist,
), ),
onTap: () async {
if (isInWishList)
await deleteFromWishlistFunction();
else
await addToWishlistFunction();
Navigator.of(context).pop();
}),
ListTile( ListTile(
leading: Icon(Icons.compare), leading: Icon(Icons.compare),
title: Text( title: Text(
TranslationBase.of(context).compare, TranslationBase.of(context).compare,
), ),
onTap: () => { onTap: () {
Provider.of<CompareList>(context, listen: false) Provider.of<CompareList>(context, listen: false)
.addItem(specificationData), .addItem(specificationData);
Navigator.of(context).pop();
}, },
), ),
], ],

@ -1398,6 +1398,8 @@ class TranslationBase {
String get addToCart => localizedValues['addToCart'][locale.languageCode]; String get addToCart => localizedValues['addToCart'][locale.languageCode];
String get addToWishlist => String get addToWishlist =>
localizedValues['addToWishlist'][locale.languageCode]; localizedValues['addToWishlist'][locale.languageCode];
String get removeFromWishlist =>
localizedValues['removeFromWishlist'][locale.languageCode];
String get buyNow => localizedValues['buyNow'][locale.languageCode]; String get buyNow => localizedValues['buyNow'][locale.languageCode];
String get quantityShortcut => String get quantityShortcut =>
localizedValues['quantityShortcut'][locale.languageCode]; localizedValues['quantityShortcut'][locale.languageCode];

Loading…
Cancel
Save