fix bugs on wish list

merge-requests/420/head
Elham Rababh 4 years ago
parent b0b278a7e3
commit 3dc28d318a

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

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

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

Loading…
Cancel
Save