setWishlist method
Set wishlist Automatically sends a push request with updated cart and wishlist state if wishlist was previously initialized
Implementation
Future<void> setWishlist(
final Iterable<WishlistProduct> wishlistProducts,
) async {
final storage = HiveStorageService.instance;
List<String> currentWishlist = List<String>.from(
wishlistProducts.map((product) => jsonEncode(product.toMap())),
);
List<String>? previousWishlist = await storage.getWishlistData();
DeepCollectionEquality equality = DeepCollectionEquality();
if (previousWishlist == null ||
!equality.equals(currentWishlist, previousWishlist)) {
await storage.setWishlistData(currentWishlist);
_wishlistChanged = true;
// Only send automatic push if wishlist was already initialized (not first load)
if (_wishlistInitialized) {
// Send push with current state (cart + wishlist) without page context
await trackScreenView();
debugPrint('Automatic wishlist state push sent');
} else {
_wishlistInitialized = true;
debugPrint('Wishlist initialized (no automatic push on first load)');
}
}
// Mark as initialized if wishlist data didn't change but not yet initialized
if (!_wishlistInitialized) {
_wishlistInitialized = true;
debugPrint('Wishlist initialized with existing data (no automatic push on first load)');
}
}