country profile ph-2

This commit is contained in:
Juki-shiba 2025-06-02 18:55:10 +05:30
parent 68b6ae6121
commit 1083b9b87f
9 changed files with 488 additions and 111 deletions

View File

@ -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<18> ‡·•šì2S
bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\android_gradle_build_mini.json  †°ó÷ò2<18> ‡·•šì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
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  †°ó÷ò2 § ÑÜÐßÓ2

View File

@ -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
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  Ö°ó÷ò2 § ÑÜÐßÓ2

View File

@ -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  <EFBFBD>¸×Óñ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  <EFBFBD>¸×Óñ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  <EFBFBD>¸×Óñ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  <EFBFBD>¸×Óñ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  <EFBFBD>¸×Óñ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
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ±±ó÷ò2 § ÑÜÐßÓ2

View File

@ -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  ( <20>„—šì2\
SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\prefab_config.json  è±ó÷ò2  ( <20>„—šì2\
Z
XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\symbol_folder_index.txt  ȸ×Óñ2  O <20>„—šì2W
XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\symbol_folder_index.txt  è±ó÷ò2  O <20>„—šì2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  ȸ×Óñ2 § ÑÜÐßÓ2
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  è±ó÷ò2 § ÑÜÐßÓ2

View File

@ -300,6 +300,7 @@ import 'package:go_router/go_router.dart';
import 'package:uae_stat/config/sessionCheckScreen.dart';
import 'package:uae_stat/domain/entities/session_entity.dart';
import 'package:uae_stat/infrastructure/data/p_auth_repo.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/Country_Profile/DetailedCountryProfilePage.dart';
import 'package:uae_stat/presentation/Screens/Bottom%20Navigation%20Pages/UAE_Numbers/Social/marriages.dart';
import 'package:uae_stat/presentation/Screens/app_tour/WelcomePage.dart';
import 'package:uae_stat/presentation/Screens/auth_verification/forgot_password.dart';
@ -652,7 +653,16 @@ final GoRouter router = GoRouter(
builder: (context, state) => const CountryProfilePage(),
),
GoRoute(
path: '/country-profile-detail',
builder: (context, state) {
final data = state.extra as Map<String, String>;
return DetailedCountryProfilePage(
countryName: data['countryName']!,
flag: data['flag']!,
);
},
),
GoRoute(
path: '/marriages',
builder: (context, state) => Marriages(),

View File

@ -7,26 +7,129 @@ class Competitiveness extends StatelessWidget {
@override
Widget build(BuildContext context) {
double myheight = MediaQuery.of(context).size.height;
double mywidth = MediaQuery.of(context).size.width;
return PopScope(
canPop: false, // Allow back navigation only if not login screen
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
context.go('/myhomepage'); // Show exit confirmation dialog
context.go('/myhomepage');
},
child: BaseScaffold(
title: Center(
child: SizedBox(
height: myheight / 5,
width: mywidth / 3,
child: Image(image: AssetImage('assets/logos/uae_stat.png')))),
title: Center(child: Text("UAE Competitiveness")),
body: CompetitivenessState(context),
),
);
}
Widget CompetitivenessState(BuildContext context) {
return Center(child: Text("Competitiveness"));
final List<Map<String, dynamic>> reports = [
{
'rank': 44,
'title': 'Prosperity Index (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Colors.blue,
},
{
'rank': 26,
'title': 'World Happiness Report (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Color(0xFF844F36),
},
{
'rank': 7,
'title': 'Logistics Performance Index (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Colors.blue,
},
{
'rank': 10,
'title': 'Global Soft Power Index (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Colors.blue,
},
{
'rank': 76,
'title': 'Global Terrorism Index (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Color(0xFF844F36),
},
{
'rank': 10,
'title': 'The World Competitiveness Yearbook (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Colors.blue,
},
{
'rank': 71,
'title': 'Global Gender Gap Report (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Colors.blue,
},
{
'rank': 29,
'title': 'Competitive Industrial Performance Index (2023)',
'logo': 'assets/backgrounds/share/fcsc.svg',
'borderColor': Color(0xFF844F36),
},
];
return Column(
children: [
SizedBox(height: 16),
Text(
'(22) Competitive Reports',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600),
),
SizedBox(height: 12),
Expanded(
child: ListView.builder(
itemCount: reports.length,
itemBuilder: (context, index) {
final report = reports[index];
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6),
child: Container(
decoration: BoxDecoration(
border: Border.all(color: report['borderColor']),
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
child: Row(
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Rank',
style: TextStyle(fontSize: 12, color: Colors.grey[600]),
),
Text(
'${report['rank']}',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
],
),
SizedBox(width: 12),
Expanded(
child: Text(
report['title'],
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
),
),
SizedBox(width: 4),
Image.asset(
report['logo'],
width: 10,
height: 10,
fit: BoxFit.contain,
),
],
),
),
);
},
),
),
],
);
}
}

View File

@ -0,0 +1,233 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
class DetailedCountryProfilePage extends StatelessWidget {
final String countryName;
final String flag;
const DetailedCountryProfilePage({
Key? key,
required this.countryName,
required this.flag,
}) : super(key: key);
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return BaseScaffold(
title: const Text('Country Profile'),
hasDrawer: false,
leading: const BackButton(),
body: SingleChildScrollView(
child: 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,
),
),
],
),
),
const SizedBox(height: 24),
// Government Officials
Wrap(
spacing: 16,
runSpacing: 16,
alignment: WrapAlignment.center,
children: const [
_LeaderCard(
title: 'President',
name: 'Alberto Fernández',
imagePath: 'assets/backgrounds/share/fcsc.svg',
),
_LeaderCard(
title: 'Vice President',
name: 'Cristina Fernández De Kirchner',
imagePath: 'assets/backgrounds/share/fcsc.svg',
),
_LeaderCard(
title: 'Chief of the Cabinet\nof Ministers',
name: 'Agustin Rossi',
imagePath: 'assets/backgrounds/share/fcsc.svg',
),
_LeaderCard(
title: 'President of Chamber\nof Deputies',
name: 'Cecilia Moreau',
imagePath: 'assets/backgrounds/share/fcsc.svg',
),
],
),
const SizedBox(height: 24),
// Category Buttons
Wrap(
spacing: 16,
runSpacing: 16,
alignment: WrapAlignment.center,
children: [
_CategoryButton(
title: 'Demography',
color: Color(0xFFD7C1AF),
onTap: () {
// Add Demography popup or navigation
},
),
_CategoryButton(
title: 'GDP',
color: Color(0xFFAEC6CF),
onTap: () {
// Add GDP popup or navigation
},
),
_CategoryButton(
title: 'FDI',
color: Color(0xFFD7AFAF),
onTap: () => _showFDIPopup(context),
),
_CategoryButton(
title: 'Trade',
color: Color(0xFFAFCFAF),
onTap: () => _showTradePopup(context),
),
_CategoryButton(
title: 'Bilateral Trade',
color: Color(0xFF9FAFCF),
onTap: () {
// Add Bilateral Trade popup or navigation
},
),
],
)
],
),
),
),
);
}
}
class _LeaderCard extends StatelessWidget {
final String title;
final String name;
final String imagePath;
const _LeaderCard({
Key? key,
required this.title,
required this.name,
required this.imagePath,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: 160,
child: Column(
children: [
ClipRRect(
borderRadius: BorderRadius.circular(8),
child: Image.asset(
imagePath,
width: 160,
height: 120,
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,
),
),
],
),
);
}
}
class _CategoryButton extends StatelessWidget {
final String title;
final Color color;
final VoidCallback onTap;
const _CategoryButton({
Key? key,
required this.title,
required this.color,
required this.onTap,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: onTap,
child: Container(
width: 160,
height: 70,
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(16),
),
alignment: Alignment.center,
child: Text(
title,
style: const TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 16,
),
textAlign: TextAlign.center,
),
),
);
}
}
void _showTradePopup(BuildContext context) {
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)),
),
);
}

View File

@ -64,68 +64,90 @@ class _CountryProfilePageState extends ConsumerState<CountryProfilePage> {
context.go('/myhomepage');
},
child: BaseScaffold(
title: Center(
child: SizedBox(
height: myheight / 5,
width: mywidth / 3,
child: const Image(image: AssetImage('assets/logos/uae_stat.png')),
title: Text(
context.translate(
'Country Profile',
'ملف الدولة',
),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
)
),
),
body: Column(
children: [
Padding(
padding: EdgeInsets.only(left: 12.0),
child: TextField(
controller: _searchController,
onChanged: (value) {
filterData(value);
},
decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.search,
hintStyle: TextStyle(
color: Color(0xFFAA8E83),
fontFamily: context.translate('Roboto', 'NotoKufi'),
fontSize: 14,
height: 1.8,
),
prefixIconConstraints: BoxConstraints(
maxWidth: 42,
maxHeight: 42,
),
prefixIcon: Container(
padding: EdgeInsets.only(right: 5, left: 5),
alignment: Alignment.center,
child: SvgPicture.asset(
MiscIconAssetPath.Search,
semanticsLabel: 'Search',
colorFilter: ColorFilter.mode(Color(0xFFAA8E83), BlendMode.srcIn),
height: 18,
width: 18,
),
),
suffixIcon: _searchController.text.isNotEmpty
? IconButton(
icon: Icon(
Icons.clear,
padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0),
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(30.0),
border: Border.all(width: 1, color: Color(0xFFAA8E83)),
),
child: TextField(
controller: _searchController,
onChanged: (value) {
filterData(value);
},
decoration: InputDecoration(
hintText: AppLocalizations.of(context)!.searchCountry,
hintStyle: TextStyle(
color: Color(0xFFAA8E83),
size: 18,
fontFamily: context.translate('Roboto', 'NotoKufi'),
fontSize: 14,
height: 1.8,
),
onPressed: () {
_searchController.clear();
filterData('');
},
)
: null,
contentPadding: EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
border: InputBorder.none,
// contentPadding:
// EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
// contentPadding: EdgeInsets.zero,
prefixIconConstraints: BoxConstraints(
maxWidth: 42,
maxHeight: 42,
),
prefixIcon: Container(
padding: EdgeInsets.only(right: 5, left: 5),
alignment: Alignment.center,
child: SvgPicture.asset(
MiscIconAssetPath.Search,
semanticsLabel: 'Search',
colorFilter: ColorFilter.mode(Color(0xFFAA8E83), BlendMode.srcIn),
height: 18,
width: 18,
),
),
suffixIcon: _searchController.text.isNotEmpty
? IconButton(
icon: Icon(
Icons.clear,
color: Color(0xFFAA8E83),
size: 18,
),
onPressed: () {
_searchController.clear();
filterData('');
},
)
: null,
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
),
),
),
),
// Updated section for "No country found"
Expanded(
child: ListView.builder(
child: filtered.isEmpty
? Center(
child: Text(
'No country found',
style: TextStyle(
fontSize: 16,
color: Colors.grey,
fontWeight: FontWeight.w500,
),
),
)
: ListView.builder(
itemCount: filtered.length,
itemBuilder: (context, index) {
final country = filtered[index];
@ -135,7 +157,12 @@ class _CountryProfilePageState extends ConsumerState<CountryProfilePage> {
style: const TextStyle(fontSize: 24),
),
title: Text(country['name']!),
onTap: () {},
onTap: () {
context.push('/country-profile-detail', extra: {
'countryName': country['name'] as String,
'flag': country['flag'] as String,
});
},
);
},
),

View File

@ -34,6 +34,8 @@ class BaseScaffold extends ConsumerStatefulWidget {
super.key,
required this.body,
required this.title,
this.leading,
this.hasDrawer = true,
this.actions,
this.showDivider = false,
this.dividerColor,
@ -47,6 +49,8 @@ class BaseScaffold extends ConsumerStatefulWidget {
});
final Widget body;
final Widget title;
final Widget? leading;
final bool hasDrawer;
final Widget? navBackArrow;
final Color? dividerColor;
final bool showDivider;