wishlist
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:grocery_app/src/data/allProduct_model.dart';
|
||||
import 'package:grocery_app/src/data/banners.dart';
|
||||
import 'package:grocery_app/src/data/best_dealProduct.dart';
|
||||
import 'package:grocery_app/src/data/product_category.dart';
|
||||
import 'package:grocery_app/src/data/wish_list_model.dart';
|
||||
import 'package:grocery_app/src/logic/repo/product_repo.dart';
|
||||
import 'package:grocery_app/utils/constants/shared_pref_utils.dart';
|
||||
import 'package:grocery_app/utils/extensions/extensions.dart';
|
||||
@@ -198,12 +199,7 @@ class ProductProvider extends ChangeNotifier {
|
||||
Set<String> wishlist = {}; // To store product IDs in the wishlist
|
||||
|
||||
// Function to add/remove product from wishlist
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Future<void> toggleWishlist(BuildContext context, String productId) async {
|
||||
try {
|
||||
if (wishlist.contains(productId)) {
|
||||
@@ -225,6 +221,112 @@ class ProductProvider extends ChangeNotifier {
|
||||
}
|
||||
}
|
||||
|
||||
// Future<bool> addToCart(BuildContext context, String productId) async
|
||||
// {
|
||||
// //context.showLoader(show: true);
|
||||
|
||||
|
||||
// var data =
|
||||
// {
|
||||
// "productId": productId, "quantity": 1};
|
||||
|
||||
// try {
|
||||
// var result = await _homeRepo.addToCart(data);
|
||||
|
||||
// return result.fold(
|
||||
// (error) {
|
||||
// ScaffoldMessenger.of(context).showSnackBar(
|
||||
// SnackBar(
|
||||
// content: Text(error.message),
|
||||
// backgroundColor: Colors.red,
|
||||
// ),
|
||||
// );
|
||||
// return false;
|
||||
// },
|
||||
// (response) {
|
||||
// Fluttertoast.showToast(
|
||||
// msg: "Wishlist updated successfully!",
|
||||
// toastLength: Toast.LENGTH_SHORT,
|
||||
// gravity: ToastGravity.BOTTOM,
|
||||
// backgroundColor: Colors.green,
|
||||
// textColor: Colors.white,
|
||||
// fontSize: 14.0,
|
||||
// );
|
||||
|
||||
// return true;
|
||||
// },
|
||||
// );
|
||||
// } catch (e) {
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
Set<String> cartItems = {}; // Stores added cart items
|
||||
Map<String, bool> isLoading = {}; // Tracks loading state per product
|
||||
|
||||
Future<void> addToCart(BuildContext context, String productId) async {
|
||||
if (cartItems.contains(productId)) return; // Prevent duplicate additions
|
||||
|
||||
isLoading[productId] = true;
|
||||
notifyListeners();
|
||||
|
||||
var data = {"productId": productId, "quantity": 1};
|
||||
|
||||
try {
|
||||
var result = await _homeRepo.addToCart(data);
|
||||
|
||||
result.fold(
|
||||
(error) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(error.message),
|
||||
backgroundColor: Colors.red,
|
||||
),
|
||||
);
|
||||
},
|
||||
(response) {
|
||||
cartItems.add(productId); // Update cart state on success
|
||||
Fluttertoast.showToast(
|
||||
msg: "Added to cart successfully!",
|
||||
toastLength: Toast.LENGTH_SHORT,
|
||||
gravity: ToastGravity.BOTTOM,
|
||||
backgroundColor: Colors.green,
|
||||
textColor: Colors.white,
|
||||
fontSize: 14.0,
|
||||
);
|
||||
},
|
||||
);
|
||||
} catch (e) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text("Something went wrong"), backgroundColor: Colors.red),
|
||||
);
|
||||
}
|
||||
|
||||
isLoading[productId] = false;
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
bool isWishListItemLoadingg = true;
|
||||
|
||||
List<WishListItem> wishListItem = [];
|
||||
|
||||
int totalItems=0;
|
||||
|
||||
Future<void> gettAllWishList(BuildContext context) async {
|
||||
var data = {};
|
||||
|
||||
var result = await _homeRepo.gettAllWishList(data);
|
||||
return result.fold(
|
||||
(error) {
|
||||
isWishListItemLoadingg = false;
|
||||
notifyListeners();
|
||||
},
|
||||
(response) {
|
||||
wishListItem = response.items!;
|
||||
totalItems=response.totalItems;
|
||||
isWishListItemLoadingg = false;
|
||||
notifyListeners();
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import 'package:grocery_app/src/data/allProduct_model.dart';
|
||||
import 'package:grocery_app/src/data/banners.dart';
|
||||
import 'package:grocery_app/src/data/best_dealProduct.dart';
|
||||
import 'package:grocery_app/src/data/product_category.dart';
|
||||
import 'package:grocery_app/src/data/wish_list_model.dart';
|
||||
import 'package:grocery_app/src/logic/services/home_locator.dart';
|
||||
|
||||
class ProductRepo {
|
||||
@@ -66,30 +67,42 @@ class ProductRepo {
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<String> addToWish(data) async
|
||||
{
|
||||
FutureResult<String> addToWish(data) async {
|
||||
try {
|
||||
var response = await _productService.addToWish(data);
|
||||
|
||||
final String model = response.toString();
|
||||
|
||||
final String model = response.toString();
|
||||
|
||||
return right(model);
|
||||
} on DioException catch (e)
|
||||
{
|
||||
} on DioException catch (e) {
|
||||
print("djhgfjdfhjg ${e}");
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<String> addToCart(data) async
|
||||
{
|
||||
FutureResult<String> addToCart(data) async {
|
||||
try {
|
||||
var response = await _productService.addToCart(data);
|
||||
|
||||
final String model = response.toString();
|
||||
|
||||
final String model = response.toString();
|
||||
|
||||
return right(model);
|
||||
} on DioException catch (e) {
|
||||
print("djhgfjdfhjg ${e}");
|
||||
var error = CustomDioExceptions.handleError(e);
|
||||
return left(error);
|
||||
}
|
||||
}
|
||||
|
||||
FutureResult<WishListModel> gettAllWishList(data) async {
|
||||
try {
|
||||
var response = await _productService.gettAllWishList(data);
|
||||
WishListModel wishListModel=wishListModelFromJson(response.toString());
|
||||
|
||||
// final String model = response.toString();
|
||||
|
||||
return right(wishListModel);
|
||||
} on DioException catch (e)
|
||||
{
|
||||
print("djhgfjdfhjg ${e}");
|
||||
@@ -98,9 +111,6 @@ class ProductRepo {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
FutureResult<BannerModel> getBanners(data, BuildContext context) async {
|
||||
try {
|
||||
var response = await _productService.getBanners(data);
|
||||
|
||||
@@ -56,6 +56,14 @@ class ProductService extends ApiService {
|
||||
return response;
|
||||
}
|
||||
|
||||
Future gettAllWishList(data) async {
|
||||
var response = await api.get(APIURL.gettAllWishList, data: jsonEncode(data));
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user