From 2fe2a57b9b384232a40f7a0397fe7682386bbe02 Mon Sep 17 00:00:00 2001 From: MhdZiadHirati Date: Wed, 25 Oct 2023 09:11:21 +0300 Subject: [PATCH] favorites bug fixed --- .../presentation_layer/widgets/favorite.dart | 144 +++++++++--------- .../home/presentation_layer/screens/home.dart | 5 + 2 files changed, 76 insertions(+), 73 deletions(-) diff --git a/lib/features/card/presentation_layer/widgets/favorite.dart b/lib/features/card/presentation_layer/widgets/favorite.dart index 6168a73..c7ecd7f 100644 --- a/lib/features/card/presentation_layer/widgets/favorite.dart +++ b/lib/features/card/presentation_layer/widgets/favorite.dart @@ -49,87 +49,85 @@ class FavoriteWidget extends StatelessWidget { )); }); } else { - if (isFromDetailsScreen || isFavoriteCardWidget) { - return ValueBuilder( - initialValue: favoriteController.isCardFav(cardModel.id), - builder: (bool? value, toggle) { - if (value!) { - return SvgPicture.asset( - 'assets/icons/heart_fill.svg', - ).onTap(() async { - toggle(!value); + // if (isFromDetailsScreen || isFavoriteCardWidget) { + // return ValueBuilder( + // initialValue: favoriteController.isCardFav(cardModel.id), + // builder: (bool? value, toggle) { + // if (value!) { + // return SvgPicture.asset( + // 'assets/icons/heart_fill.svg', + // ).onTap(() async { + // toggle(!value); - favoriteController.toggleFavoriteCard(cardModel.id); + // favoriteController.toggleFavoriteCard(cardModel.id); - cardController.toggleFavorite(cardModel.id, true, - onSuccess: (val) {}); - }); - } - return SvgPicture.asset( - 'assets/icons/heart.svg', - colorFilter: - const ColorFilter.mode(Colors.white, BlendMode.srcIn), - ).onTap(() async { - toggle(!value); + // cardController.toggleFavorite(cardModel.id, true, + // onSuccess: (val) {}); + // }); + // } + // return SvgPicture.asset( + // 'assets/icons/heart.svg', + // colorFilter: + // const ColorFilter.mode(Colors.white, BlendMode.srcIn), + // ).onTap(() async { + // toggle(!value); - favoriteController.toggleFavoriteCard( - cardModel.id, - cardModel: cardModel, - userId: cardModel.user.id, - ); + // favoriteController.toggleFavoriteCard( + // cardModel.id, + // cardModel: cardModel, + // userId: cardModel.user.id, + // ); - cardController.toggleFavorite(cardModel.id, false, - onSuccess: (val) { - // if (isFromDetailsScreen) { - // favoriteController.getFavorites(); - // } - }); + // cardController.toggleFavorite(cardModel.id, false, + // onSuccess: (val) { + // // if (isFromDetailsScreen) { + // // favoriteController.getFavorites(); + // // } + // }); - // cardModel.isFav = !cardModel.isFav; - // if (isFavoriteCardWidget || isFromDetailsScreen) { - // cardController.cardState.result.clear(); - // cardController.getCards(); - // } + // // cardModel.isFav = !cardModel.isFav; + // // if (isFavoriteCardWidget || isFromDetailsScreen) { + // // cardController.cardState.result.clear(); + // // cardController.getCards(); + // // } + // }); + // }, + // ); + // } else { + return Obx(() { + if (favoriteController.isCardFav(cardModel.id)) { + return SvgPicture.asset( + 'assets/icons/heart_fill.svg', + ).onTap(() async { + favoriteController.toggleFavoriteCard(cardModel.id); + cardController.toggleFavorite(cardModel.id, true, onSuccess: (val) { + // favoriteController.getFavorites(); }); - }, - ); - } else { - return Obx(() { - if (favoriteController.isCardFav(cardModel.id)) { - return SvgPicture.asset( - 'assets/icons/heart_fill.svg', - ).onTap(() async { - favoriteController.toggleFavoriteCard(cardModel.id); - cardController.toggleFavorite(cardModel.id, true, - onSuccess: (val) { - // favoriteController.getFavorites(); - }); + }); + } else { + return SvgPicture.asset( + 'assets/icons/heart.svg', + colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn), + ).onTap(() async { + favoriteController.toggleFavoriteCard( + cardModel.id, + cardModel: cardModel, + userId: cardModel.user.id, + ); + cardController.toggleFavorite(cardModel.id, false, + onSuccess: (val) { + // favoriteController.getFavorites(); }); - } else { - return SvgPicture.asset( - 'assets/icons/heart.svg', - colorFilter: - const ColorFilter.mode(Colors.white, BlendMode.srcIn), - ).onTap(() async { - favoriteController.toggleFavoriteCard( - cardModel.id, - cardModel: cardModel, - userId: cardModel.user.id, - ); - cardController.toggleFavorite(cardModel.id, false, - onSuccess: (val) { - // favoriteController.getFavorites(); - }); - }); - } - }); + }); + } + }); - // // // cardModel.isFav = !cardModel.isFav; - // // // if (isFavoriteCardWidget || isFromDetailsScreen) { - // // // cardController.cardState.result.clear(); - // // // cardController.getCards(); - // // // } - } + // // // cardModel.isFav = !cardModel.isFav; + // // // if (isFavoriteCardWidget || isFromDetailsScreen) { + // // // cardController.cardState.result.clear(); + // // // cardController.getCards(); + // // // } + // } } } } diff --git a/lib/features/home/presentation_layer/screens/home.dart b/lib/features/home/presentation_layer/screens/home.dart index e618239..50d1a44 100644 --- a/lib/features/home/presentation_layer/screens/home.dart +++ b/lib/features/home/presentation_layer/screens/home.dart @@ -23,6 +23,8 @@ import 'package:taafee_mobile/features/chat/business%20logic%20layer/chat_contro import 'package:taafee_mobile/features/home/business_logic_layer/home_controller.dart'; import 'package:taafee_mobile/features/home/presentation_layer/widgets/appbar.dart'; +import '../../../favorite/business_logic_layer/favorite_controller.dart'; + // ignore: must_be_immutable class HomeScreen extends StatelessWidget { final HomeController homeController = Get.find(); @@ -32,10 +34,13 @@ class HomeScreen extends StatelessWidget { final ScrollController searchScrollController = ScrollController(); final AuthController authController = Get.find(); final ChatController chatController = Get.find(); + final FavoriteController favoriteController = Get.find(); HomeScreen({super.key}); Future load() async { await Future.wait([ + if (favoriteController.getFavoriteState.result.isEmpty) + favoriteController.getFavorites(), if (categoryController.categoryState.result.isEmpty) categoryController.getCategories(onConnectionError: (e) { Toast.showToast('no_internert_connection'.tr);