From de612bc1c68fd282827cf211612cfe812688691d Mon Sep 17 00:00:00 2001 From: Moe Date: Tue, 26 Apr 2022 10:44:42 +0700 Subject: [PATCH] Add removeFromCart function --- lib/data/cart.dart | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/data/cart.dart b/lib/data/cart.dart index 5892d91..d07916f 100644 --- a/lib/data/cart.dart +++ b/lib/data/cart.dart @@ -17,4 +17,25 @@ Future addToCart(productId) async { cart.add(filteredCart[0]); } await prefs.setString('cart', jsonEncode(cart).toString()); +} + +Future removeFromCart(productId, bool batch) async { + final prefs = await SharedPreferences.getInstance(); + + var cart = jsonDecode(prefs.getString('cart') ?? '[]'); + var filteredCart = cart.where((x) => x["product_id"] == productId).toList(); + if (filteredCart.length > 0) { + if (batch) { + cart = cart.where((x) => x["product_id"] != productId).toList(); + } else { + filteredCart[0]["quantity"]--; + if (filteredCart[0]["quantity"] == 0) { + cart = cart.where((x) => x["product_id"] != productId).toList(); + } else { + cart = cart.where((x) => x["product_id"] != productId).toList(); + cart.add(filteredCart[0]); + } + } + } + await prefs.setString('cart', jsonEncode(cart).toString()); } \ No newline at end of file