diff --git a/android/app/.cxx/Debug/m4rj1019/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/m4rj1019/arm64-v8a/configure_fingerprint.bin index f2d36262..0e10e2c5 100644 --- a/android/app/.cxx/Debug/m4rj1019/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/m4rj1019/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logd b `C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  Ҷ2a +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  Ҷ2a _ -]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\android_gradle_build.json  2 축2f +]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\android_gradle_build.json  2 축2f d -bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\android_gradle_build_mini.json  2 2S +bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\android_gradle_build_mini.json  2 2S Q -OC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build.ninja  2 2W +OC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build.ninja  2 2W U -SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build.ninja.txt  2\ +SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build.ninja.txt  2\ Z -XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build_file_index.txt  2 S 2] +XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\build_file_index.txt  2 S 2] [ -YC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\compile_commands.json  2a +YC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\compile_commands.json  2a _ -]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\compile_commands.json.bin  2 g +]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\compile_commands.json.bin  2 g e -cC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\metadata_generation_command.txt  2 +cC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\metadata_generation_command.txt  2  2Z X -VC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\prefab_config.json  2  ( 2_ +VC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\prefab_config.json  2  ( 2_ ] -[C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\symbol_folder_index.txt  2  R 2W +[C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\symbol_folder_index.txt  2  R 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/m4rj1019/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/m4rj1019/armeabi-v7a/configure_fingerprint.bin index 44aa031b..c844b3b2 100644 --- a/android/app/.cxx/Debug/m4rj1019/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/m4rj1019/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logf d bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  հ2  ږ2c +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ږ2c a -_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build.json  ְ2 얖2h +_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build.json  2 얖2h f -dC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build_mini.json  ְ2 2U +dC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build_mini.json  2 2U S -QC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja  ְ2 2Y +QC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja  2 2Y W -UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja.txt  ְ2^ +UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja.txt  2^ \ -ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build_file_index.txt  ְ2 S 2_ +ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build_file_index.txt  2 S 2_ ] -[C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json  ְ2c +[C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json  2c a -_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json.bin  ְ2 i +_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json.bin  2 i g -eC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\metadata_generation_command.txt  ְ2 +eC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\metadata_generation_command.txt  2  ט2\ Z -XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\prefab_config.json  ְ2  ( 2a +XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\prefab_config.json  2  ( 2a _ -]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\symbol_folder_index.txt  ְ2  T 2W +]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\symbol_folder_index.txt  2  T 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ְ2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/m4rj1019/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/m4rj1019/x86/configure_fingerprint.bin index 9a8d3cbb..e49513ed 100644 --- a/android/app/.cxx/Debug/m4rj1019/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/m4rj1019/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log^ \ ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2[ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ё2  2[ Y -WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build.json  2 2` +WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build.json  ґ2 2` ^ -\C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build_mini.json  2 2M +\C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build_mini.json  ґ2 2M K -IC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja  2 2Q +IC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja  ґ2 2Q O -MC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja.txt  2V +MC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja.txt  ґ2V T -RC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build_file_index.txt  2 S 2W +RC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build_file_index.txt  ґ2 S 2W U -SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json  2[ +SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json  ґ2[ Y -WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json.bin  2 a +WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json.bin  ґ2 a _ -]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\metadata_generation_command.txt  2 +]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\metadata_generation_command.txt  ґ2  2T R -PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\prefab_config.json  2  ( 2Y +PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\prefab_config.json  ґ2  ( 2Y W -UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\symbol_folder_index.txt  2  L 2W +UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\symbol_folder_index.txt  ґ2  L 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ґ2  2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/m4rj1019/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/m4rj1019/x86_64/configure_fingerprint.bin index 9bfdc5f9..2b50ba2e 100644 --- a/android/app/.cxx/Debug/m4rj1019/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/m4rj1019/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Loga _ ]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2^ +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2^ \ -ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build.json  2 2c +ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build.json  2 2c a -_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build_mini.json  2 2P +_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build_mini.json  2 2P N -LC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja  2 炗2T +LC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja  2 炗2T R -PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja.txt  2Y +PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja.txt  2Y W -UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build_file_index.txt  2 S 2Z +UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build_file_index.txt  2 S 2Z X -VC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json  2^ +VC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json  2^ \ -ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json.bin  2 d +ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json.bin  2 d b -`C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\metadata_generation_command.txt  2 +`C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\metadata_generation_command.txt  2  2W U -SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\prefab_config.json  2  ( 2\ +SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\prefab_config.json  2  ( 2\ Z -XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\symbol_folder_index.txt  2  O 2W +XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\symbol_folder_index.txt  2  O 2W U -SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file +SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  2  2 \ No newline at end of file diff --git a/assets/country-profile/alberto.png b/assets/country-profile/alberto.png new file mode 100644 index 00000000..9f5b7bc1 Binary files /dev/null and b/assets/country-profile/alberto.png differ diff --git a/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart b/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart index 055f6aec..ca3fa9ee 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart @@ -1,3 +1,5 @@ +import 'dart:ui'; + import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart'; @@ -44,37 +46,37 @@ class DetailedCountryProfilePage extends StatelessWidget { const SizedBox(height: 24), // Government Officials - Wrap( - spacing: 16, - runSpacing: 16, - alignment: WrapAlignment.center, + GridView.count( + crossAxisCount: 2, + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + mainAxisSpacing: 12, + crossAxisSpacing: 12, + childAspectRatio: 2.0, children: const [ _LeaderCard( - title: 'President', + imagePath: 'assets/country-profile/alberto.png', name: 'Alberto Fernández', - imagePath: 'assets/backgrounds/share/fcsc.svg', + position: 'President', ), _LeaderCard( - title: 'Vice President', - name: 'Cristina Fernández De Kirchner', - imagePath: 'assets/backgrounds/share/fcsc.svg', + imagePath: 'assets/country-profile/alberto.png', + name: 'Alberto Fernández', + position: 'President', ), _LeaderCard( - title: 'Chief of the Cabinet\nof Ministers', - name: 'Agustin Rossi', - imagePath: 'assets/backgrounds/share/fcsc.svg', + imagePath: 'assets/country-profile/alberto.png', + name: 'Alberto Fernández', + position: 'President', ), _LeaderCard( - title: 'President of Chamber\nof Deputies', - name: 'Cecilia Moreau', - imagePath: 'assets/backgrounds/share/fcsc.svg', + imagePath: 'assets/country-profile/alberto.png', + name: 'Alberto Fernández', + position: 'President', ), ], ), - const SizedBox(height: 24), - - // Category Buttons Wrap( spacing: 16, runSpacing: 16, @@ -82,34 +84,28 @@ class DetailedCountryProfilePage extends StatelessWidget { children: [ _CategoryButton( title: 'Demography', - color: Color(0xFFD7C1AF), - onTap: () { - // Add Demography popup or navigation - }, + color: const Color(0xFFD7C1AF), + onTap: () => showCategoryPopup(context, 'Demography'), ), _CategoryButton( title: 'GDP', - color: Color(0xFFAEC6CF), - onTap: () { - // Add GDP popup or navigation - }, + color: const Color(0xFFAEC6CF), + onTap: () => showCategoryPopup(context, 'GDP'), ), _CategoryButton( title: 'FDI', - color: Color(0xFFD7AFAF), - onTap: () => _showFDIPopup(context), + color: const Color(0xFFD7AFAF), + onTap: () => showCategoryPopup(context, 'FDI'), ), _CategoryButton( title: 'Trade', - color: Color(0xFFAFCFAF), - onTap: () => _showTradePopup(context), + color: const Color(0xFFAFCFAF), + onTap: () => showCategoryPopup(context, 'Trade'), ), _CategoryButton( title: 'Bilateral Trade', - color: Color(0xFF9FAFCF), - onTap: () { - // Add Bilateral Trade popup or navigation - }, + color: const Color(0xFF9FAFCF), + onTap: () => showCategoryPopup(context, 'Bilateral Trade'), ), ], ) @@ -120,50 +116,112 @@ class DetailedCountryProfilePage extends StatelessWidget { ); } } - -class _LeaderCard extends StatelessWidget { +class _GDPItem extends StatelessWidget { final String title; - final String name; + final String value; + final String rank; + + const _GDPItem({ + required this.title, + required this.value, + required this.rank, + }); + + @override + Widget build(BuildContext context) { + return Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(title, style: TextStyle(color: Colors.grey)), + SizedBox(height: 4), + Row( + children: [ + Text( + value, + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + SizedBox(width: 8), + Text( + '$rank ↓', + style: TextStyle(color: Colors.red, fontSize: 12), + ), + SizedBox(width: 4), + Text('Rank', style: TextStyle(fontSize: 10, color: Colors.grey)), + ], + ), + ], + ), + ), + ], + ); + } +} +class _LeaderCard extends StatelessWidget { final String imagePath; + final String name; + final String position; const _LeaderCard({ Key? key, - required this.title, - required this.name, required this.imagePath, + required this.name, + required this.position, }) : super(key: key); @override Widget build(BuildContext context) { - return SizedBox( - width: 160, - child: Column( + return Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + boxShadow: [ + BoxShadow( + color: Colors.grey.shade300, + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Row( children: [ ClipRRect( borderRadius: BorderRadius.circular(8), child: Image.asset( imagePath, - width: 160, - height: 120, + width: 70, + height: 80, fit: BoxFit.cover, ), ), - const SizedBox(height: 8), - Text( - title, - textAlign: TextAlign.center, - style: const TextStyle( - fontSize: 13, - color: Colors.black54, - ), - ), - const SizedBox(height: 4), - Text( - name, - textAlign: TextAlign.center, - style: const TextStyle( - fontSize: 14, - fontWeight: FontWeight.w600, + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + position, + style: TextStyle( + fontSize: 10, + color: Colors.grey.shade600, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: 2), + Text( + name, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 12, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ], ), ), ], @@ -171,7 +229,6 @@ class _LeaderCard extends StatelessWidget { ); } } - class _CategoryButton extends StatelessWidget { final String title; final Color color; @@ -189,11 +246,11 @@ class _CategoryButton extends StatelessWidget { return GestureDetector( onTap: onTap, child: Container( - width: 160, - height: 70, + width: 178.34, + height: 112.59, decoration: BoxDecoration( color: color, - borderRadius: BorderRadius.circular(16), + borderRadius: BorderRadius.circular(20), ), alignment: Alignment.center, child: Text( @@ -209,24 +266,288 @@ class _CategoryButton extends StatelessWidget { ); } } -void _showTradePopup(BuildContext context) { +class CategoryPopupContent extends StatelessWidget { + final String category; + + const CategoryPopupContent({super.key, required this.category}); + + @override + Widget build(BuildContext context) { + switch (category) { + case 'Demography': + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8), + Container( + width: 50, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + const SizedBox(height: 16), + const Text( + 'GDP Overview', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + _GDPItem( + title: '2021 Nominal GDP (AED)', + value: '1.8 T', + rank: '26', + ), + Divider(), + _GDPItem( + title: '2021 Real GDP (AED)', + value: '2.08 T', + rank: '22', + ), + Divider(), + _GDPItem( + title: '2021 GDP Per Capita (AED)', + value: '39.38 K', + rank: '64', + ), + Divider(), + const SizedBox(height: 8), + const Text( + 'Income Level', + style: TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + const Text( + 'Upper Middle Income', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 16), + ], + ); + case 'GDP': + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8), + Container( + width: 50, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + const SizedBox(height: 16), + const Text( + 'GDP Overview', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + _GDPItem( + title: '2021 Nominal GDP (AED)', + value: '1.8 T', + rank: '26', + ), + Divider(), + _GDPItem( + title: '2021 Real GDP (AED)', + value: '2.08 T', + rank: '22', + ), + Divider(), + _GDPItem( + title: '2021 GDP Per Capita (AED)', + value: '39.38 K', + rank: '64', + ), + Divider(), + const SizedBox(height: 8), + const Text( + 'Income Level', + style: TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + const Text( + 'Upper Middle Income', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 16), + ], + ); + case 'FDI': + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8), + Container( + width: 50, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + const SizedBox(height: 16), + const Text( + 'GDP Overview', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + _GDPItem( + title: '2021 Nominal GDP (AED)', + value: '1.8 T', + rank: '26', + ), + Divider(), + _GDPItem( + title: '2021 Real GDP (AED)', + value: '2.08 T', + rank: '22', + ), + Divider(), + _GDPItem( + title: '2021 GDP Per Capita (AED)', + value: '39.38 K', + rank: '64', + ), + Divider(), + const SizedBox(height: 8), + const Text( + 'Income Level', + style: TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + const Text( + 'Upper Middle Income', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 16), + ], + ); + case 'Trade': + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8), + Container( + width: 50, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + const SizedBox(height: 16), + const Text( + 'GDP Overview', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + _GDPItem( + title: '2021 Nominal GDP (AED)', + value: '1.8 T', + rank: '26', + ), + Divider(), + _GDPItem( + title: '2021 Real GDP (AED)', + value: '2.08 T', + rank: '22', + ), + Divider(), + _GDPItem( + title: '2021 GDP Per Capita (AED)', + value: '39.38 K', + rank: '64', + ), + Divider(), + const SizedBox(height: 8), + const Text( + 'Income Level', + style: TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + const Text( + 'Upper Middle Income', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 16), + ], + ); + case 'Bilateral Trade': + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + const SizedBox(height: 8), + Container( + width: 50, + height: 5, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + const SizedBox(height: 16), + const Text( + 'GDP Overview', + style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold), + ), + const SizedBox(height: 16), + _GDPItem( + title: '2021 Nominal GDP (AED)', + value: '1.8 T', + rank: '26', + ), + Divider(), + _GDPItem( + title: '2021 Real GDP (AED)', + value: '2.08 T', + rank: '22', + ), + Divider(), + _GDPItem( + title: '2021 GDP Per Capita (AED)', + value: '39.38 K', + rank: '64', + ), + Divider(), + const SizedBox(height: 8), + const Text( + 'Income Level', + style: TextStyle(color: Colors.grey), + ), + const SizedBox(height: 4), + const Text( + 'Upper Middle Income', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16), + ), + const SizedBox(height: 16), + ], + ); + // Add other categories here... + + default: + return Center(child: Text('$category details coming soon.')); + } + } +} +//pop-up +void showCategoryPopup(BuildContext context, String category) { showDialog( context: context, - builder: (context) => AlertDialog( - content: Image.asset('assets/images/Popup-Trade-EN.png'), - contentPadding: const EdgeInsets.all(8), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), - ), - ); -} - -void _showFDIPopup(BuildContext context) { - showDialog( - context: context, - builder: (context) => AlertDialog( - content: Image.asset('assets/images/Popup-FDI-EN.png'), - contentPadding: const EdgeInsets.all(8), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + barrierColor: Colors.black.withOpacity(0.3), // semi-transparent background + builder: (context) => BackdropFilter( + filter: ImageFilter.blur(sigmaX: 5, sigmaY: 5), // blur effect + child: Dialog( + insetPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 40), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: CategoryPopupContent(category: category), + ), + ), ), ); } diff --git a/pubspec.yaml b/pubspec.yaml index 377161ba..b431b507 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -119,6 +119,7 @@ flutter: - assets/backgrounds/ - assets/backgrounds/from_alsaray/ - assets/country_flags/ + - assets/country-profile/ - assets/cached_responses/informatica/ - assets/cached_responses/sharepoint/ - assets/cached_responses/qlik/