From 93936aeb461e60a4fe00f70a15e3d00fddd17d38 Mon Sep 17 00:00:00 2001 From: Juki-shiba Date: Thu, 13 Feb 2025 12:45:28 +0530 Subject: [PATCH] bug fix app left out --- .../auth_verification/create_new_pw.dart | 60 ++++-- .../auth_verification/registration.dart | 115 +++++++---- .../routes/auth_routes/login_route.dart | 193 +++++++++--------- .../Drawer Items/edit_profile.dart | 10 +- .../Drawer Items/manage_users.dart | 71 +++++-- .../notification/notification.dart | 126 ++++++------ .../user_guide/KeyFeatures/AppFeatures.dart | 17 +- .../user_guide/KeyFeatures/useTheApp.dart | 17 +- .../Drawer Items/user_guide/faq_page.dart | 15 +- .../Drawer Items/user_guide/userguide.dart | 14 +- .../drawer_routes/custom_drawer_routes.dart | 2 +- pubspec.yaml | 2 +- 12 files changed, 382 insertions(+), 260 deletions(-) diff --git a/lib/presentation/Screens/auth_verification/create_new_pw.dart b/lib/presentation/Screens/auth_verification/create_new_pw.dart index 741146aa..10ef4568 100644 --- a/lib/presentation/Screens/auth_verification/create_new_pw.dart +++ b/lib/presentation/Screens/auth_verification/create_new_pw.dart @@ -1,11 +1,14 @@ import 'package:external_repos/external_repos.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:go_router/go_router.dart'; import 'package:pocketbase/pocketbase.dart'; import 'package:uae_stat/config/my_router.dart'; import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart'; import 'package:uae_stat/presentation/Screens/profilepage.dart'; +import 'package:uae_stat/presentation/components/indicators/locale_provider.dart'; +import 'package:uae_stat/presentation/components/my_toggle.dart'; import 'package:uae_stat/presentation/components/space.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; @@ -209,29 +212,46 @@ class _CreateNewPwState extends State { child: Column( children: [ // SizedBox(height: screenHeight / 7), - Align( - alignment: Alignment.topLeft, - child: GestureDetector( - onTap: () { + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + GestureDetector( + onTap: () { - if (widget.keyParam == 'editProfile') { - context.go('/editProfile'); - }else - { - context.go('/profile/${widget.userId}'); - } + if (widget.keyParam == 'editProfile') { + context.go('/editProfile'); + }else + { + context.go('/profile/${widget.userId}'); + } - }, - child: Container( - margin: EdgeInsets.only(top: 10,left: 1,bottom: 16,right: 1), // Add margin for positioning - child: Icon( - // Icons.close, - Icons.arrow_back_ios, - size: 28, // Icon size + }, + child: Container( + margin: EdgeInsets.only(top: 10,left: 1,bottom: 16,right: 1), // Add margin for positioning + child: Icon( + // Icons.close, + Icons.arrow_back_ios, + size: 28, // Icon size color: Colors.black, // Icon color + ), ), - ), - ), + ), // Left icon + Consumer( + builder: (context, ref, _) { + final locale = ref.watch(localeProvider); // Current locale + return MyToggle( + isOn: locale?.languageCode == 'en', + knobTextWhenOn: 'ع', + knobTextWhenOff: 'EN', + pathColorWhenOn: Colors.grey.shade300, + pathColorWhenOff: Colors.grey.shade300, + onTap: () { + ref.read(localeProvider.notifier).toggleLocale(); + }, + ); + }, + ),// Right icon + ], ), SizedBox(height: screenHeight / 30), @@ -575,7 +595,7 @@ class _CreateNewPwState extends State { SizedBox(width: 2), Icon( Icons.arrow_forward_ios, - color: Colors.white38, + color: Colors.white, size: 18, ), ], diff --git a/lib/presentation/Screens/auth_verification/registration.dart b/lib/presentation/Screens/auth_verification/registration.dart index 928cfa73..f80344a6 100644 --- a/lib/presentation/Screens/auth_verification/registration.dart +++ b/lib/presentation/Screens/auth_verification/registration.dart @@ -266,20 +266,34 @@ class _RegisterScreenState extends ConsumerState { context: context, builder: (context) { return AlertDialog( - title: Text('Email Exists'), + backgroundColor: Colors.white, + title: Text(context.translate( 'Email Exists','البريد الإلكتروني موجود'),), content: Text( - 'Email ID already exists. Please use a different email.'), + context.translate( 'Email ID already exists. Please use a different email.', + 'معرف البريد الإلكتروني موجود بالفعل. يرجى استخدام بريد إلكتروني آخر.' + ),), actions: [ TextButton( onPressed: () { Navigator.pop(context); setState(() { isRegistering = - false; // Re-enable the button after error + false; // Re-enable the button after error }); }, - child: Text('OK'), + style: TextButton.styleFrom( + backgroundColor: Color(0xFFAA8E83), // Set background color + foregroundColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), // Set text color + ), + ), + child: Text( + context.translate('Ok','حسنًا'), + style: TextStyle(color: Colors.white, fontSize: 16), + ), ), + ], ); }, @@ -349,28 +363,23 @@ class _RegisterScreenState extends ConsumerState { children: [ Align( alignment: AlignmentDirectional.topEnd, - child: Consumer( - builder: (context, ref, _) { - final locale = ref.watch(localeProvider); // Current locale - return MyToggle( - isOn: locale?.languageCode == 'en', - knobTextWhenOn: 'ع', - knobTextWhenOff: 'EN', - pathColorWhenOn: Colors.grey.shade300, - pathColorWhenOff: Colors.grey.shade300, - onTap: () { - ref.read(localeProvider.notifier).toggleLocale(); - }, - ); - // IconButton( - // icon: Icon(locale?.languageCode == 'en' - // ? Icons.toggle_off_outlined - // : Icons.toggle_on_outlined,), - // onPressed: () { - // ref.read(localeProvider.notifier).toggleLocale(); - // }, - // ); - }, + child: Padding( + padding: EdgeInsets.only(top: 16.0, right :16.0), + child: Consumer( + builder: (context, ref, _) { + final locale = ref.watch(localeProvider); // Current locale + return MyToggle( + isOn: locale?.languageCode == 'en', + knobTextWhenOn: 'ع', + knobTextWhenOff: 'EN', + pathColorWhenOn: Colors.grey.shade300, + pathColorWhenOff: Colors.grey.shade300, + onTap: () { + ref.read(localeProvider.notifier).toggleLocale(); + }, + ); + }, + ), ), ), Container( @@ -522,7 +531,13 @@ class _RegisterScreenState extends ConsumerState { ), SizedBox(height: 10), Text(AppLocalizations.of(context)! - .register_details), + .register_details, + style: TextStyle( + fontSize: context.translate(18.0, 14.0), + color: const Color(0xff898C81), + fontWeight: FontWeight.w600, + ), + ), SizedBox(height: 20), // Display this if registration is pending approval @@ -951,8 +966,8 @@ class _RegisterScreenState extends ConsumerState { left: 25, right: 30), child: Row( - mainAxisAlignment: - MainAxisAlignment.start, + crossAxisAlignment: + CrossAxisAlignment.start, children: [ Checkbox( value: isChecked, @@ -964,15 +979,17 @@ class _RegisterScreenState extends ConsumerState { }, side: BorderSide( color: showError - ? Color(0xFF7296BE) - : Color(0xFF7DAFBC), + ? Color(0xFFb22222) + : MyTheme.topicColor( + IndicatorTopic.economy) + .shade400, width: 1, ), ), Expanded( child: Padding( padding: const EdgeInsets.only( - top: 11.0), + top: 13.0), child: Text.rich( TextSpan( text: AppLocalizations.of( @@ -980,8 +997,14 @@ class _RegisterScreenState extends ConsumerState { .agree, // text: 'I agree to ', style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: registerLocale + ?.languageCode == + 'ar' + ? 12 + : 14, color: Color( - 0xFF898C81), // Change to your desired color + 0xFF898C81,), // Change to your desired color ), children: [ TextSpan( @@ -1047,6 +1070,12 @@ class _RegisterScreenState extends ConsumerState { context)! .conditions, style: TextStyle( + fontWeight: FontWeight.w500, + fontSize: registerLocale + ?.languageCode == + 'ar' + ? 12 + : 14, color: Color( 0xFF898C81), // Change to your desired color ), @@ -1065,17 +1094,26 @@ class _RegisterScreenState extends ConsumerState { MainAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.only( - left: 30.0), + padding: EdgeInsets.only( + left:registerLocale + ?.languageCode == + 'ar' + ? 0 + : 30.0, + right: registerLocale + ?.languageCode == + 'ar' + ? 30 + : 0.0,), child: Text( 'Required', style: TextStyle( color: Color(0xFFb22222), fontSize: registerLocale - ?.languageCode == - 'ar' + ?.languageCode == + 'ar' ? 12 - : 14, + : 12, ), ), ), @@ -1133,6 +1171,7 @@ class _RegisterScreenState extends ConsumerState { AppLocalizations.of(context)! .account_confirmation, style: TextStyle( + fontWeight: FontWeight.w500, fontSize: registerLocale?.languageCode == 'ar' diff --git a/lib/presentation/routes/auth_routes/login_route.dart b/lib/presentation/routes/auth_routes/login_route.dart index 790a60e0..8fc864c1 100644 --- a/lib/presentation/routes/auth_routes/login_route.dart +++ b/lib/presentation/routes/auth_routes/login_route.dart @@ -449,7 +449,7 @@ class LoginRoute extends HookConsumerWidget { 'Roboto', 'Roboto', ), - fontSize: locale?.languageCode == 'ar' ? 16: 18, + fontSize: locale?.languageCode == 'ar' ? 14: 18, fontWeight: FontWeight.bold, ) ), @@ -565,7 +565,8 @@ class LoginRoute extends HookConsumerWidget { 'Don\'t have an account? ', 'ليس لديك حساب؟', ), - style: const TextStyle( + style: TextStyle( + fontSize: locale?.languageCode == 'ar' ? 12 : 14, color: Color(0xff898C81), ), ), @@ -648,36 +649,43 @@ class LoginRoute extends HookConsumerWidget { final screenWidth = MediaQuery.of(context).size.width; final listViewHorizontalPadding = screenWidth < 700 ? 30 : 30 + (screenWidth - 700) / 2; - final scaffoldBody = ListView( - padding: EdgeInsets.symmetric( - horizontal: listViewHorizontalPadding.toDouble(), + final scaffoldBody = SingleChildScrollView( + child: Column( + children:[ + Padding( + padding: EdgeInsets.all(16), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + 3.verticalSpace, + Align( + alignment: AlignmentDirectional.topEnd, + child: MyToggle( + isOn: locale?.languageCode == 'en', + knobTextWhenOn: 'ع', + knobTextWhenOff: 'EN', + pathColorWhenOn: Colors.grey.shade300, + pathColorWhenOff: Colors.grey.shade300, + onTap: () { + ref.read(localeProvider.notifier).toggleLocale(); + }, + ), + ), + 34.verticalSpace, + helloAndPleaseLoginTexts, + 40.verticalSpace, + form, + 15.verticalSpace, + dontHaveAnAccountRegisterBtn, + // continueAsGuestBtn, + // Spacer(), + 15.verticalSpace, + fcscBanner, + ], + ), + ) + ] ), - children: [ - 3.verticalSpace, - Align( - alignment: AlignmentDirectional.topEnd, - child: MyToggle( - isOn: locale?.languageCode == 'en', - knobTextWhenOn: 'ع', - knobTextWhenOff: 'EN', - pathColorWhenOn: Colors.grey.shade300, - pathColorWhenOff: Colors.grey.shade300, - onTap: () { - ref.read(localeProvider.notifier).toggleLocale(); - }, - ), - ), - 36.verticalSpace, - helloAndPleaseLoginTexts, - 42.verticalSpace, - form, - 15.verticalSpace, - dontHaveAnAccountRegisterBtn, - 20.verticalSpace, - // continueAsGuestBtn, - 95.verticalSpace, - fcscBanner, - ], ); // final bgScaffold = Scaffold( // backgroundColor: Colors.white, @@ -688,7 +696,8 @@ class LoginRoute extends HookConsumerWidget { canPop: false, // Allow back navigation only if not login screen onPopInvokedWithResult: (didPop, result) { if (didPop) return; - _showExitConfirmation(context); // Show exit confirmation dialog + SystemNavigator.pop(); + // _showExitConfirmation(context); // Show exit confirmation dialog }, child: Scaffold( backgroundColor: Colors.white, @@ -696,64 +705,64 @@ class LoginRoute extends HookConsumerWidget { ), ); } - - void _showExitConfirmation(BuildContext context) { - showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text( context.translate( - 'Exit App', - 'الخروج من التطبيق', - ),style: TextStyle(color: Color(0xFF898C81),fontWeight: FontWeight.w700),), - content: Text( context.translate( - 'Are you sure you want to exit?', - 'هل أنت متأكد أنك تريد الخروج؟', - ), - style: TextStyle(color:Color(0xFF898C81)), - ), - actions: [ - TextButton( - onPressed: () => Navigator.of(context).pop(), // Close dialog - style: TextButton.styleFrom( - foregroundColor: Color(0xFFAA8E83), // Background color - // backgroundColor: Colors.white, // Font (text) color - side: BorderSide( - // color: Color(0xFF92722A)), // Border outline color - color: Color(0xFFAA8E83)), // Border outline color - shape: RoundedRectangleBorder( - borderRadius: - BorderRadius.circular(8), // Optional: Rounded corners - ), - padding: EdgeInsets.symmetric( - horizontal: 16, vertical: 12), // Optional: Padding - ), - child: Text( context.translate( - 'Cancel', - 'إلغاء', - ),), - ), - TextButton( - onPressed: () => SystemNavigator.pop(), // Exit the app - style: TextButton.styleFrom( - backgroundColor: Color(0xFFAA8E83), // Background color - foregroundColor: Colors.white, // Font (text) color - side: BorderSide( - // color: Color(0xFF92722A)), // Border outline color - color: Color(0xFFAA8E83)), // Border outline color - shape: RoundedRectangleBorder( - borderRadius: - BorderRadius.circular(8), // Optional: Rounded corners - ), - padding: EdgeInsets.symmetric( - horizontal: 16, vertical: 12), // Optional: Padding - ), - child: Text( context.translate( - 'Exit', - 'خروج', - ),), - ), - ], - ), - ); - } +//when the pop up need un comment the code +// void _showExitConfirmation(BuildContext context) { +// showDialog( +// context: context, +// builder: (context) => AlertDialog( +// title: Text( context.translate( +// 'Exit App', +// 'الخروج من التطبيق', +// ),style: TextStyle(color: Color(0xFF898C81),fontWeight: FontWeight.w700),), +// content: Text( context.translate( +// 'Are you sure you want to exit?', +// 'هل أنت متأكد أنك تريد الخروج؟', +// ), +// style: TextStyle(color:Color(0xFF898C81)), +// ), +// actions: [ +// TextButton( +// onPressed: () => Navigator.of(context).pop(), // Close dialog +// style: TextButton.styleFrom( +// foregroundColor: Color(0xFFAA8E83), // Background color +// // backgroundColor: Colors.white, // Font (text) color +// side: BorderSide( +// // color: Color(0xFF92722A)), // Border outline color +// color: Color(0xFFAA8E83)), // Border outline color +// shape: RoundedRectangleBorder( +// borderRadius: +// BorderRadius.circular(8), // Optional: Rounded corners +// ), +// padding: EdgeInsets.symmetric( +// horizontal: 16, vertical: 12), // Optional: Padding +// ), +// child: Text( context.translate( +// 'Cancel', +// 'إلغاء', +// ),), +// ), +// TextButton( +// onPressed: () => SystemNavigator.pop(), // Exit the app +// style: TextButton.styleFrom( +// backgroundColor: Color(0xFFAA8E83), // Background color +// foregroundColor: Colors.white, // Font (text) color +// side: BorderSide( +// // color: Color(0xFF92722A)), // Border outline color +// color: Color(0xFFAA8E83)), // Border outline color +// shape: RoundedRectangleBorder( +// borderRadius: +// BorderRadius.circular(8), // Optional: Rounded corners +// ), +// padding: EdgeInsets.symmetric( +// horizontal: 16, vertical: 12), // Optional: Padding +// ), +// child: Text( context.translate( +// 'Exit', +// 'خروج', +// ),), +// ), +// ], +// ), +// ); +// } } \ No newline at end of file diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart b/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart index 096ef0bf..b9e17849 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/edit_profile.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'dart:io'; +import 'package:external_repos/external_repos.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -11,6 +12,7 @@ import 'package:intl/intl.dart'; import 'package:pocketbase/pocketbase.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:uae_stat/config/my_theme.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; @@ -824,8 +826,10 @@ class _EditProfileState extends State { }, side: BorderSide( color: showError - ? Colors.red - : Colors.grey, + ? Color(0xFFb22222) + : MyTheme.topicColor( + IndicatorTopic.economy) + .shade400, width: 1.5, ), ), @@ -1060,7 +1064,7 @@ class ConfirmationDialog extends StatelessWidget { TextSpan( text: 'Country', style: - TextStyle(fontWeight: FontWeight.w700), // Bold for "name" + TextStyle(fontWeight: FontWeight.w500), // Bold for "name" ), TextSpan( text: ' or ', diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart index 390e2371..b826fa2e 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart @@ -291,33 +291,64 @@ class _ManageUserRouterState extends State { // ), // onChanged: filterUsers, // ), + // Container( + // height: 40, + // decoration: BoxDecoration( + // color: Colors.white, + // borderRadius: BorderRadius.circular(30.0), + // border: Border.all(width: 2, color: Color(0xFFAA8E83)), + // ), + // child: TextField( + // decoration: InputDecoration( + // hintText: AppLocalizations.of(context)!.search, + // hintStyle: TextStyle(color: Color(0xFFC3C6CB)), + // prefixIcon: Image.asset( + // MiscIconAssetPath.search, + // width: 20, + // height: 20, + // ), + // // ,prefixIcon: Icon( + // // Icons.search, + // // color: Color(0xFFAA8E83), + // // ), + // border: InputBorder.none, + // contentPadding: EdgeInsets.symmetric( + // vertical: 15.0, horizontal: 20.0), + // ), + // onChanged: filterUsers, + // ), + // ), Container( + height: 40, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(30.0), - border: Border.all(width: 2, color: Color(0xFFAA8E83)), + border: Border.all(width: 1, color: Color(0xFFAA8E83)), ), - child: TextField( - decoration: InputDecoration( - labelStyle:TextStyle( - color:Color(0xFFC3C6CB), + child: Padding( + padding: EdgeInsets.only(left: 12.0), + child: TextField( + decoration: InputDecoration( + hintText: "Search", + hintStyle: TextStyle(color: Color(0xFF898C81)), + + + prefixIcon: Image( + image: ExactAssetImage(MiscIconAssetPath.search), + width: 24, + height: 24, ), - hintText: AppLocalizations.of(context)!.search, - prefixIcon: Image.asset( - MiscIconAssetPath.search, - width: 20, - height: 20, + + + // prefixIcon: Image.asset( + // MiscIconAssetPath.search, + // // fit: BoxFit.contain, + // ), + border: InputBorder.none, + contentPadding: + EdgeInsets.symmetric(vertical: 8.0, horizontal: 18.0), ), - // ,prefixIcon: Icon( - // Icons.search, - // color: Color(0xFFAA8E83), - // ), - border: InputBorder.none, - contentPadding: EdgeInsets.symmetric( - vertical: 15.0, horizontal: 20.0), - ), - onChanged: filterUsers, - ), + ),), ), SizedBox(height: myheight / 40), filteredUserData.isEmpty diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart b/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart index e5b1ccf3..8a41b7f9 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/notification/notification.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:go_router/go_router.dart'; import '../../custom_drawer_routes.dart'; class NotificationPage extends StatefulWidget { @@ -26,67 +27,74 @@ class _NotificationPageState extends State { ? notifications : notifications.where((notification) => notification["category"] == tabs[selectedTabIndex]).toList(); - return BaseScaffold( - title: Text('Notification'), - body: Column( - children: [ - TabBarHeader( - tabs: tabs, - selectedIndex: selectedTabIndex, - onTabSelected: (index) { - setState(() { - selectedTabIndex = index; - }); - }, - ), - Expanded( - child: selectedTabIndex == 1 - ? Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Image.asset( - 'assets/backgrounds/Notification/Update_notific.png', - height: 200, - ), - SizedBox(height: 16), - Text( - filteredNotifications.isNotEmpty - ? filteredNotifications[0]['title'] - : 'No updates available.', - style: TextStyle(fontSize: 16, color: Colors.grey), - textAlign: TextAlign.center, - ), - ], - ), - ) - : filteredNotifications.isEmpty - ? Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon(Icons.info_outline, size: 100, color: Colors.grey[400]), - SizedBox(height: 16), - Text( - 'No notifications available.', - style: TextStyle(fontSize: 16, color: Colors.grey), - ), - ], - ), - ) - : ListView.builder( - itemCount: filteredNotifications.length, - itemBuilder: (context, index) { - final notification = filteredNotifications[index]; - return NotificationTile( - title: notification["title"]!, - date: notification["date"]!, - category: notification["category"]!, - ); + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) { + if (didPop) return; + context.go('/myhomepage'); + }, + child: BaseScaffold( + title: Text('Notification'), + body: Column( + children: [ + TabBarHeader( + tabs: tabs, + selectedIndex: selectedTabIndex, + onTabSelected: (index) { + setState(() { + selectedTabIndex = index; + }); }, ), - ), - ], + Expanded( + child: selectedTabIndex == 1 + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'assets/backgrounds/Notification/Update_notific.png', + height: 200, + ), + SizedBox(height: 16), + Text( + filteredNotifications.isNotEmpty + ? filteredNotifications[0]['title'] + : 'No updates available.', + style: TextStyle(fontSize: 16, color: Colors.grey), + textAlign: TextAlign.center, + ), + ], + ), + ) + : filteredNotifications.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.info_outline, size: 100, color: Colors.grey[400]), + SizedBox(height: 16), + Text( + 'No notifications available.', + style: TextStyle(fontSize: 16, color: Colors.grey), + ), + ], + ), + ) + : ListView.builder( + itemCount: filteredNotifications.length, + itemBuilder: (context, index) { + final notification = filteredNotifications[index]; + return NotificationTile( + title: notification["title"]!, + date: notification["date"]!, + category: notification["category"]!, + ); + }, + ), + ), + ], + ), ), ); } diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart index c654831b..803d013d 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/AppFeatures.dart @@ -25,16 +25,13 @@ class AppFeatures extends StatelessWidget { dividerColor: Colors.grey[300], appbarColor: Colors.white, mycenterTitle: true, - title: Padding( - padding: EdgeInsets.only(bottom: 8.0), - child: Text( - 'Key Features', - style: TextStyle( - fontSize: 22, - color: Color(0xFF7DAFBC), - fontWeight: FontWeight.w500, - // fontWeight: FontWeight.w500, - ), + title: Text( + 'Key Features', + style: TextStyle( + fontSize: 22, + color: Color(0xFF7DAFBC), + fontWeight: FontWeight.w500, + // fontWeight: FontWeight.w500, ), ), body: Container( diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart index 07f187be..9d3a01e5 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/KeyFeatures/useTheApp.dart @@ -25,16 +25,13 @@ class WhoUseTheApp extends StatelessWidget { appbarColor: Colors.white, bottomColor: Colors.white, mycenterTitle: true, - title: Padding( - padding: EdgeInsets.only(bottom: 8.0), - child: Text( - 'Key Features', - style: TextStyle( - fontSize: 22, - color: Color(0xFF7DAFBC), - fontWeight: FontWeight.w500, - // fontWeight: FontWeight.w500, - ), + title: Text( + 'Key Features', + style: TextStyle( + fontSize: 22, + color: Color(0xFF7DAFBC), + fontWeight: FontWeight.w500, + // fontWeight: FontWeight.w500, ), ), body: Container( diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart index 8089482b..642131bf 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/faq_page.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:uae_stat/infrastructure/services/img_asset_paths/banner_asset_path.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; @@ -10,6 +11,11 @@ class FAQPage extends StatefulWidget { } class _FAQPageState extends State { + final fcscBanner = Image.asset( + BannerAssetPath.fcsc, + height: 56, + alignment: Alignment.center, + ); @override Widget build(BuildContext context) { return BaseScaffold( @@ -36,7 +42,14 @@ class _FAQPageState extends State { radius: Radius.circular(10), interactive: true, child: SingleChildScrollView( - child: QuestionAnswerScrollView(), + child: Column( + children: [ + QuestionAnswerScrollView(), + SizedBox(height: 25,), + fcscBanner, + SizedBox(height: 25,), + ], + ), ), ), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart index 1602c807..14966edb 100755 --- a/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/user_guide/userguide.dart @@ -45,15 +45,18 @@ class _UserguideState extends State { } Widget build(BuildContext context) { - return BaseScaffold( + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) { + if (didPop) return; + context.go('/myhomepage'); + }, + child: BaseScaffold( showDivider: true, bottomColor: Colors.white, dividerColor: Colors.grey[300], appbarColor: Colors.white, - title: Padding( - padding:EdgeInsets.only(bottom:0.0), - child: Text('User Guide'), - ) , + title: Text('User Guide') , body: Container( color: Colors.white, padding: const EdgeInsets.symmetric(horizontal: 16 , vertical: 20), @@ -74,6 +77,7 @@ class _UserguideState extends State { }, ), ), + ), ); } diff --git a/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart b/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart index 7ec95b3d..6f217571 100644 --- a/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart +++ b/lib/presentation/routes/drawer_routes/custom_drawer_routes.dart @@ -655,7 +655,7 @@ class _BaseScaffoldState extends ConsumerState { ), ), ), - + scrolledUnderElevation: 0, titleSpacing: 0, backgroundColor: widget.appbarColor ?? Colors.white, leadingWidth: widget.showBackButton ? mywidth * 0.25 : null, diff --git a/pubspec.yaml b/pubspec.yaml index 929b8cac..24cec09b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -114,7 +114,7 @@ flutter: - assets/splash_screen/ - assets/icons/uae_numbers/bookmarks.png - assets/icons/uae_numbers/bookmarksSelectedUae.png - - assets/icons/uae_numbers/filters.png + - assets/icons/uae_numbers/ - assets/icons/uae_numbers/share.png - assets/icons/misc/vector.png - assets/icons/misc/visible_on.png