diff --git a/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin index fc05fcf6..9f1acb5e 100644 --- a/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Loge c aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  㑥2  ̲2b +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  ̲2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  㑥2 ز2g +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build.json  2 ز2g e -cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  㑥2 粊2T +cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\android_gradle_build_mini.json  2 粊2T R -PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  㑥2 Ʊ2X +PC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja  2 Ʊ2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  㑥2] +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build.ninja.txt  2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  㑥2 S 2^ +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\build_file_index.txt  2 S 2^ \ -ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  㑥2b +ZC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json  2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  㑥2 h +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\compile_commands.json.bin  2 h f -dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  㑥2 +dC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\metadata_generation_command.txt  2  벊2[ Y -WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  㑥2  ( 첊2` +WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\prefab_config.json  2  ( 첊2` ^ -\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  㑥2  S 2W +\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\arm64-v8a\symbol_folder_index.txt  2  S 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/6k676t62/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin index bdb0f3a6..14592bed 100644 --- a/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logg e cC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  啋2d +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  啋2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  2 땋2i +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build.json  2 땋2i g -eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  2 2V +eC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\android_gradle_build_mini.json  2 2V T -RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  2 ͓2Z +RC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja  2 ͓2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  2_ +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build.ninja.txt  2_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  2 S 2` +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\build_file_index.txt  2 S 2` ^ -\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  2d +\C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json  2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  2 j +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\compile_commands.json.bin  2 j h -fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  2 +fC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\metadata_generation_command.txt  2  2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  2  ( 2b +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\prefab_config.json  2  ( 2b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  2  U 2W +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\armeabi-v7a\symbol_folder_index.txt  2  U 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/6k676t62/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin index 82a2cda9..98a269ef 100644 --- a/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log_ ] [C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\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\ Z -XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  2 2a +XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build.json  2 2a _ -]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  2 2N +]C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\android_gradle_build_mini.json  2 2N L -JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  2 2R +JC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja  2 2R P -NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  2W +NC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build.ninja.txt  2W U -SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  2 S 2X +SC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\build_file_index.txt  2 S 2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  2\ +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json  2\ Z -XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  2 b +XC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\compile_commands.json.bin  2 b ` -^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  2 +^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\metadata_generation_command.txt  2  2U S -QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  2  ( 2Z +QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\prefab_config.json  2  ( 2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  2  M 2W +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86\symbol_folder_index.txt  2  M 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/6k676t62/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin index e3715bad..02f709e1 100644 --- a/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/6k676t62/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logb ` ^C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\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_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  2 ˋ2d +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build.json  2 ˋ2d b -`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  2 ˋ2Q +`C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\android_gradle_build_mini.json  2 ˋ2Q O -MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  2 ʋ2U +MC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja  2 ʋ2U S -QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  2Z +QC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build.ninja.txt  2Z X -VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  2 S ˋ2[ +VC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\build_file_index.txt  2 S ˋ2[ Y -WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  2_ +WC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json  2_ ] -[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  2 e +[C:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\compile_commands.json.bin  2 e c -aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  2 +aC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\metadata_generation_command.txt  2  ˋ2X V -TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  2  ( ˋ2] +TC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\prefab_config.json  2  ( ˋ2] [ -YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  2  P ˋ2W +YC:\flutter code\share\FCSC\android\app\.cxx\Debug\6k676t62\x86_64\symbol_folder_index.txt  2  P ˋ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/CategoryFile/BilateralTrade.png b/assets/country-profile/CategoryFile/BilateralTrade.png new file mode 100644 index 00000000..4157f7e5 Binary files /dev/null and b/assets/country-profile/CategoryFile/BilateralTrade.png differ diff --git a/assets/country-profile/CategoryFile/Demo.png b/assets/country-profile/CategoryFile/Demo.png new file mode 100644 index 00000000..8103dbab Binary files /dev/null and b/assets/country-profile/CategoryFile/Demo.png differ diff --git a/assets/country-profile/CategoryFile/FDI.png b/assets/country-profile/CategoryFile/FDI.png new file mode 100644 index 00000000..30ee2a28 Binary files /dev/null and b/assets/country-profile/CategoryFile/FDI.png differ diff --git a/assets/country-profile/CategoryFile/GDP.png b/assets/country-profile/CategoryFile/GDP.png new file mode 100644 index 00000000..e35b6b0d Binary files /dev/null and b/assets/country-profile/CategoryFile/GDP.png differ diff --git a/assets/country-profile/CategoryFile/Trade.png b/assets/country-profile/CategoryFile/Trade.png new file mode 100644 index 00000000..fbe20036 Binary files /dev/null and b/assets/country-profile/CategoryFile/Trade.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 03cdf2d6..a28a19cf 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/Country_Profile/DetailedCountryProfilePage.dart @@ -1,5 +1,4 @@ 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'; @@ -19,124 +18,138 @@ class DetailedCountryProfilePage extends StatelessWidget { double width = MediaQuery.of(context).size.width; return BaseScaffold( - title: const Text('Country Profile'), - // hasDrawer: false, + title: const Text('Country Profile'), showBackButton: true, - body: Padding( - padding: const EdgeInsets.all(16.0), - child: Column( - children: [ - // Country name and flag - Center( - child: Column( - children: [ - Text(flag, style: const TextStyle(fontSize: 48)), - const SizedBox(height: 8), - Text( - countryName.toUpperCase(), - style: const TextStyle( - fontSize: 22, - fontWeight: FontWeight.bold, + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + children: [ + // Country name and flag (Header Section) + Center( + child: Column( + children: [ + Text( + flag, + style: const TextStyle(fontSize: 48), ), - ), - ], + const SizedBox(height: 8), + Text( + countryName.toUpperCase(), + style: const TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + ), + ), + ], + ), ), - ), - const SizedBox(height: 24), + const SizedBox(height: 16), - // Government Officials - GridView.count( - crossAxisCount: 2, - shrinkWrap: true, - physics: const NeverScrollableScrollPhysics(), - mainAxisSpacing: 12, - crossAxisSpacing: 12, - childAspectRatio: 2.0, - children: const [ - _LeaderCard( - imagePath: 'assets/country-profile/alberto.png', - name: 'Alberto Fernández', - position: 'President', - ), - _LeaderCard( - imagePath: 'assets/country-profile/alberto.png', - name: 'President of Chamber of Deputies Cecilia Moreau', - position: 'President', - ), - _LeaderCard( - imagePath: 'assets/country-profile/alberto.png', - name: 'Alberto Fernández', - position: 'President of Chamber of Deputies Cecilia Moreau', - ), - _LeaderCard( - imagePath: 'assets/country-profile/alberto.png', - name: 'Alberto Fernández', - position: 'President', - ), - ], - ), - const SizedBox(height: 24), - Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: _CategoryButton( - title: 'Demography', - color: const Color(0xFFD7C1AF), - onTap: () => showCategoryPopup(context, 'Demography'), - ), + // Government Officials (Grid Section) + SizedBox( + height: 220, // Fixed height for the GridView to control its size + child: GridView.count( + crossAxisCount: 2, + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + mainAxisSpacing: 12, + crossAxisSpacing: 12, + childAspectRatio: 2.0, + children: const [ + _LeaderCard( + imagePath: 'assets/country-profile/alberto.png', + name: 'Alberto Fernández', + position: 'President', ), - const SizedBox(width: 16), - Expanded( - child: _CategoryButton( - title: 'GDP', - color: const Color(0xFFAEC6CF), - onTap: () => showCategoryPopup(context, 'GDP'), - ), + _LeaderCard( + imagePath: 'assets/country-profile/alberto.png', + name: 'Cristina Fernández de Kirchner', + position: 'Vice-President', + ), + _LeaderCard( + imagePath: 'assets/country-profile/alberto.png', + name: 'Agustin Rossi', + position: 'Chief of the Cabinet of Ministers', + ), + _LeaderCard( + imagePath: 'assets/country-profile/alberto.png', + name: 'Cecilia Moreau', + position: 'President of Chamber of Deputies', ), ], ), - const SizedBox(height: 16), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, + ), + const SizedBox(height: 12), // Further reduced spacing + + // Category Buttons (Button Section) + Flexible( + fit: FlexFit.loose, // Allow the section to take only the space it needs + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - Expanded( - child: _CategoryButton( - title: 'FDI', - color: const Color(0xFFD7AFAF), - onTap: () => showCategoryPopup(context, 'FDI'), - ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: _CategoryButton( + title: 'Demography', + overlayColor: const Color(0xE6AA947F), + backgroundImagePath: 'assets/country-profile/CategoryFile/Demo.png', + onTap: () => showCategoryPopup(context, 'Demography'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: _CategoryButton( + title: 'GDP', + overlayColor: const Color(0xFFAEC6CF), + backgroundImagePath: 'assets/country-profile/CategoryFile/GDP.png', + onTap: () => showCategoryPopup(context, 'GDP'), + ), + ), + ], ), - const SizedBox(width: 16), - Expanded( - child: _CategoryButton( - title: 'Trade', - color: const Color(0xFFAFCFAF), - onTap: () => showCategoryPopup(context, 'Trade'), - ), + const SizedBox(height: 12), + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: _CategoryButton( + title: 'FDI', + overlayColor: const Color(0xD8C39898), + backgroundImagePath: 'assets/country-profile/CategoryFile/FDI.png', + onTap: () => showCategoryPopup(context, 'FDI'), + ), + ), + const SizedBox(width: 12), + Expanded( + child: _CategoryButton( + title: 'Trade', + overlayColor: const Color(0xD8B0C5A4), + backgroundImagePath: 'assets/country-profile/CategoryFile/Trade.png', + onTap: () => showCategoryPopup(context, 'Trade'), + ), + ), + ], + ), + const SizedBox(height: 12), + // Full-width button + _CategoryButton( + title: 'Bilateral Trade', + overlayColor: const Color(0xB29CAFAB), + backgroundImagePath: 'assets/country-profile/CategoryFile/BilateralTrade.png', + onTap: () => showCategoryPopup(context, 'Bilateral Trade'), ), ], ), - const SizedBox(height: 16), - // Full-width button - _CategoryButton( - title: 'Bilateral Trade', - color: const Color(0xFF9FAFCF), - onTap: () => showCategoryPopup(context, 'Bilateral Trade'), - ), - ], - ) - - - ], + ), + ], + ), ), - ), ); } } + class _LeaderCard extends StatelessWidget { final String imagePath; final String name; @@ -154,7 +167,6 @@ class _LeaderCard extends StatelessWidget { return Container( width: 170, height: 100, - // padding: const EdgeInsets.all(5), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12), @@ -203,21 +215,24 @@ class _LeaderCard extends StatelessWidget { ], ), ), - ) + ), ], ), ); } } + class _CategoryButton extends StatelessWidget { final String title; - final Color color; + final Color overlayColor; + final String backgroundImagePath; final VoidCallback onTap; const _CategoryButton({ super.key, required this.title, - required this.color, + required this.overlayColor, + required this.backgroundImagePath, required this.onTap, }); @@ -225,26 +240,43 @@ class _CategoryButton extends StatelessWidget { Widget build(BuildContext context) { return GestureDetector( onTap: onTap, - child: Container( - height: 100, - width: double.infinity, // This ensures full width - decoration: BoxDecoration( - color: color, - borderRadius: BorderRadius.circular(12), - ), - alignment: Alignment.center, - child: Text( - title, - style: const TextStyle( - fontSize: 16, - color: Colors.white, - fontWeight: FontWeight.bold, + child: ClipRRect( + borderRadius: BorderRadius.circular(12), + child: Container( + height: 100, + decoration: BoxDecoration( + image: DecorationImage( + image: AssetImage(backgroundImagePath), + fit: BoxFit.cover, + colorFilter: ColorFilter.mode( + overlayColor.withOpacity(0.8), + BlendMode.dstATop, + ), + ), + ), + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 2.0, sigmaY: 2.0), + child: Container( + color: overlayColor.withOpacity(0.6), + child: Center( + child: Text( + title, + style: const TextStyle( + fontSize: 18, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + ), + ), ), ), ), ); } } + class CategoryPopupContent extends StatelessWidget { final String category; @@ -268,21 +300,18 @@ class CategoryPopupContent extends StatelessWidget { ), ), const SizedBox(height: 16), - _DemographyItem( icon: Icons.location_city, title: 'Capital City', value: 'Buenos Aires', ), - Divider(), - + const Divider(), _DemographyItem( icon: Icons.map, title: 'Surface Area', value: '2,780,400 sq. km', ), - Divider(), - + const Divider(), _DemographyStatItem( icon: Icons.groups, title: '2021 Population', @@ -290,8 +319,7 @@ class CategoryPopupContent extends StatelessWidget { suffix: '32 ↑ Rank', suffixStyle: const TextStyle(color: Colors.green, fontSize: 12), ), - Divider(), - + const Divider(), _DemographyStatItem( icon: Icons.male, title: '2021 Male Population', @@ -299,8 +327,7 @@ class CategoryPopupContent extends StatelessWidget { suffix: '0.98% ↑ Growth Rate', valueColor: Colors.deepPurple, ), - Divider(), - + const Divider(), _DemographyStatItem( icon: Icons.female, title: '2021 Female Population', @@ -308,7 +335,6 @@ class CategoryPopupContent extends StatelessWidget { suffix: '0.93% ↑ Growth Rate', valueColor: Colors.purple, ), - const SizedBox(height: 16), ], ); @@ -327,7 +353,6 @@ class CategoryPopupContent extends StatelessWidget { ), ), const SizedBox(height: 16), - _GDPMetricItem( icon: Icons.apartment, title: '2021 Nominal GDP (AED)', @@ -336,8 +361,7 @@ class CategoryPopupContent extends StatelessWidget { rankDirection: '↓', rankColor: Colors.red, ), - Divider(), - + const Divider(), _GDPMetricItem( icon: Icons.public, title: '2021 Real GDP (AED)', @@ -346,8 +370,7 @@ class CategoryPopupContent extends StatelessWidget { rankDirection: '↓', rankColor: Colors.red, ), - Divider(), - + const Divider(), _GDPMetricItem( icon: Icons.groups_3, title: '2021 GDP Per Capita (AED)', @@ -356,10 +379,9 @@ class CategoryPopupContent extends StatelessWidget { rankDirection: '↓', rankColor: Colors.red, ), - Divider(), - + const Divider(), const SizedBox(height: 8), - Icon(Icons.stacked_bar_chart, color: Colors.grey), + const Icon(Icons.stacked_bar_chart, color: Colors.grey), const SizedBox(height: 4), const Text( 'Income Level', @@ -388,7 +410,6 @@ class CategoryPopupContent extends StatelessWidget { ), ), const SizedBox(height: 16), - _FDIItem( icon: Icons.trending_down, title: '2020 FDI Outflows (AED)', @@ -396,8 +417,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '-15.94%', isPositive: false, ), - Divider(), - + const Divider(), _FDIItem( icon: Icons.swap_horizontal_circle_outlined, title: '2020 FDI Inflows (AED)', @@ -405,8 +425,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '-39.68%', isPositive: false, ), - Divider(), - + const Divider(), _FDIItem( icon: Icons.thumb_up_alt_outlined, title: '2021 FDI Stocks (AED)', @@ -432,7 +451,6 @@ class CategoryPopupContent extends StatelessWidget { ), ), const SizedBox(height: 16), - _TradeItem( icon: Icons.cached, title: '2021 Total Trade (AED)', @@ -440,8 +458,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '39.89%', isPositive: true, ), - Divider(), - + const Divider(), _TradeItem( icon: Icons.download_outlined, title: '2021 Imports (AED)', @@ -449,8 +466,7 @@ class CategoryPopupContent extends StatelessWidget { growthRate: '40.79%', isPositive: true, ), - Divider(), - + const Divider(), _TradeItem( icon: Icons.upload_outlined, title: '2021 Exports (AED)', @@ -495,9 +511,18 @@ class CategoryPopupContent extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: const [ - _BilateralTradeValueBox(label: 'Total Import', value: '\$390.2M', color: Color(0xFF00B292)), - _BilateralTradeValueBox(label: 'Total Export', value: '\$42.2M', color: Color(0xFFDE4D86)), - _BilateralTradeValueBox(label: 'Total ReExport', value: '\$40.2M', color: Color(0xFF4D52A1)), + _BilateralTradeValueBox( + label: 'Total Import', + value: '\$390.2M', + color: Color(0xFF00B292)), + _BilateralTradeValueBox( + label: 'Total Export', + value: '\$42.2M', + color: Color(0xFFDE4D86)), + _BilateralTradeValueBox( + label: 'Total ReExport', + value: '\$40.2M', + color: Color(0xFF4D52A1)), ], ), const SizedBox(height: 24), @@ -505,25 +530,41 @@ class CategoryPopupContent extends StatelessWidget { child: Text( 'Top 5 Import Commodities', style: TextStyle( - fontSize: 16, fontWeight: FontWeight.bold, color: Color(0xFF4FBFA8)), + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF4FBFA8)), ), ), const SizedBox(height: 12), - _CommodityRow(icon: Icons.eco, label: 'Vegetable Products', value: '\$198.6M'), - _CommodityRow(icon: Icons.liquor, label: 'Foodstuffs, Beverages, Spirits And Tobacco', value: '\$89.9M'), - _CommodityRow(icon: Icons.build, label: 'Base Metals And Articles Of Base Metal', value: '\$65.6M'), - _CommodityRow(icon: Icons.pets, label: 'Live Animals And Their Products', value: '\$23.7M'), - _CommodityRow(icon: Icons.science, label: 'Products Of The Chemical or Allied Industries', value: '\$4.7M'), + _CommodityRow( + icon: Icons.eco, + label: 'Vegetable Products', + value: '\$198.6M'), + _CommodityRow( + icon: Icons.liquor, + label: 'Foodstuffs, Beverages, Spirits And Tobacco', + value: '\$89.9M'), + _CommodityRow( + icon: Icons.build, + label: 'Base Metals And Articles Of Base Metal', + value: '\$65.6M'), + _CommodityRow( + icon: Icons.pets, + label: 'Live Animals And Their Products', + value: '\$23.7M'), + _CommodityRow( + icon: Icons.science, + label: 'Products Of The Chemical or Allied Industries', + value: '\$4.7M'), const SizedBox(height: 16), ], ); - // Add other categories here... - default: return Center(child: Text('$category details coming soon.')); } } } + Widget _DemographyItem({ required IconData icon, required String title, @@ -543,6 +584,7 @@ Widget _DemographyItem({ ], ); } + Widget _DemographyStatItem({ required IconData icon, required String title, @@ -581,6 +623,7 @@ Widget _DemographyStatItem({ ], ); } + Widget _GDPMetricItem({ required IconData icon, required String title, @@ -624,6 +667,7 @@ Widget _GDPMetricItem({ ], ); } + Widget _FDIItem({ required IconData icon, required String title, @@ -656,6 +700,7 @@ Widget _FDIItem({ ], ); } + Widget _TradeItem({ required IconData icon, required String title, @@ -688,6 +733,7 @@ Widget _TradeItem({ ], ); } + class _BilateralTradeValueBox extends StatelessWidget { final String label; final String value; @@ -743,12 +789,16 @@ Widget _CommodityRow({ Expanded( child: Text(label, style: const TextStyle(fontSize: 14)), ), - Text(value, style: const TextStyle(fontWeight: FontWeight.bold, color: Colors.teal)), + Text( + value, + style: const TextStyle( + fontWeight: FontWeight.bold, color: Colors.teal), + ), ], ), ); } -//pop-up + void showCategoryPopup(BuildContext context, String category) { showDialog( context: context, @@ -768,6 +818,4 @@ void showCategoryPopup(BuildContext context, String category) { ), ), ); -} - - +} \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 567c814c..012699ca 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -158,6 +158,7 @@ flutter: - assets/FCSC-GIF.gif - assets/icons/enquiry/ - assets/country-profile/ + - assets/country-profile/CategoryFile/ - assets/competitiveness/ fonts: