From bc58cfc4c0a09044e5f2fe187ca210bc20f98345 Mon Sep 17 00:00:00 2001 From: SurendarSuri30 Date: Tue, 24 Jun 2025 11:33:42 +0530 Subject: [PATCH] bookmark --- .../drawer_routes/Drawer Items/bookmark.dart | 64 +++++++++++++++++-- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart index 9e7a8f8f..568ae1ab 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart @@ -8,6 +8,7 @@ import 'package:pocketbase/pocketbase.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:uae_stat/config/api_config.dart'; import 'package:uae_stat/config/connectivity_provider.dart'; +import 'package:uae_stat/config/theme/theme_provider.dart'; import 'package:uae_stat/config/toggle_lang_service.dart'; import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/bookmark_asset_path.dart'; @@ -31,13 +32,23 @@ class _BookMarkState extends ConsumerState { // Current selected tab index int selectedTabIndex = 0; late UserService _userService; + late ThemeMode currentTheme; @override void initState() { super.initState(); _userService = UserService(); final locale = ref.read(localeProvider); - fetchBookmarks(locale?.languageCode ?? 'en'); + currentTheme = ref.read(themeProvider); + print('123456789'); + print(currentTheme); + final isDark = currentTheme == ThemeMode.dark || + (currentTheme == ThemeMode.system && + MediaQuery.of(context).platformBrightness == Brightness.dark); + + final themeMode = (isDark ? 'dark' : 'light'); + + fetchBookmarks(locale?.languageCode ?? 'en',themeMode); } String colorToHex(Color color) { @@ -60,7 +71,7 @@ class _BookMarkState extends ConsumerState { } } - Future fetchBookmarks(locale) async { + Future fetchBookmarks(locale,themeMode) async { try { final prefs = await SharedPreferences.getInstance(); final userID = prefs.getString('userId') ?? ''; @@ -74,7 +85,7 @@ class _BookMarkState extends ConsumerState { final response = await Dio().get( '$apiUrl/api/getUserBookmark', - queryParameters: {'user_id': userID, 'language': locale}, + queryParameters: {'user_id': userID, 'language': locale,'color_mode':themeMode}, ); if (response.statusCode == 200 && response.data != null) { @@ -196,8 +207,19 @@ class _BookMarkState extends ConsumerState { await _pb.collection('bookmark').delete(bookmarkId!, headers: { 'Authorization': adminToken, }); + + // currentTheme = ref.read(themeProvider); + // print('123456789'); + // print(currentTheme); + final isDark = currentTheme == ThemeMode.dark || + (currentTheme == ThemeMode.system && + MediaQuery.of(context).platformBrightness == Brightness.dark); + + final themeMode = (isDark ? 'dark' : 'light'); + final locale = ref.read(localeProvider); - fetchBookmarks(locale?.languageCode ?? 'en'); + + fetchBookmarks(locale?.languageCode ?? 'en',themeMode); // ToastUtil.showSuccessToast("Removed from Bookmark."); ScaffoldMessenger.of(context).showSnackBar( @@ -376,9 +398,40 @@ class _BookMarkState extends ConsumerState { }); await _userService.updateLanguage(localeCode); - fetchBookmarks(localeCode); + final currentTheme = ref.read(themeProvider); + final isDark = currentTheme == ThemeMode.dark || + (currentTheme == ThemeMode.system && + MediaQuery.of(context).platformBrightness == Brightness.dark); + + final themeString = isDark ? 'dark' : 'light'; + + fetchBookmarks(localeCode,themeString); }); + ref.listen(themeProvider, (previous, next) async { + final localeCode = ref.watch(localeProvider)?.languageCode ?? 'en'; + print(localeCode); + + // Default to 'en' if null + setState(() { + isLoading = true; + print('isLoadingref $isLoading'); + }); + + final currentTheme = ref.read(themeProvider); + final isDark = currentTheme == ThemeMode.dark || + (currentTheme == ThemeMode.system && + MediaQuery.of(context).platformBrightness == Brightness.dark); + + final themeString = isDark ? 'dark' : 'light'; + fetchBookmarks(localeCode,themeString); + }); + + final isDarkTheme = ref.watch(themeProvider) == ThemeMode.dark || + (ref.watch(themeProvider) == ThemeMode.system && + MediaQuery.of(context).platformBrightness == Brightness.dark); + + List> bookmarks = dataList.where((item) => item['isBookmark'] == true).toList(); List> filteredBookmarks = dataList.where((bookmark) { @@ -405,6 +458,7 @@ class _BookMarkState extends ConsumerState { title: Text( AppLocalizations.of(context)!.bookmarks, style: TextStyle( + color: isDarkTheme ? Colors.white : Colors.black, fontFamily: context.translate( 'Roboto', 'NotoKufi',