import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; Future addItemToCart(String id) async { final prefs = await SharedPreferences.getInstance(); String cartString = prefs.getString('cart') ?? "[]"; List> cart = List>.from(jsonDecode(cartString) as List); final index = cart.indexWhere((element) => element['id'] == id); if (index == -1) { cart.add({'id': id, 'count': 1}); } else { cart[index]['count'] = cart[index]['count']! + 1; } prefs.setString('cart', jsonEncode(cart)); } Future>> getCart() async { final prefs = await SharedPreferences.getInstance(); String cartString = prefs.getString('cart') ?? "[]"; List> cart = List>.from(jsonDecode(cartString) as List); return cart; } Future removeItemFromCart(String id) async { final prefs = await SharedPreferences.getInstance(); String cartString = prefs.getString('cart') ?? "[]"; List> cart = List>.from(jsonDecode(cartString) as List); cart.removeWhere((element) => element['id'] == id && element['count'] == 1); for (final item in cart) { if (item['id'] == id) { item['count'] = item['count']! - 1; if (item['count'] == 0) { cart.remove(item); } } } prefs.setString('cart', jsonEncode(cart)); } Future clearCart() async { final prefs = await SharedPreferences.getInstance(); prefs.setString('cart', "[]"); }