country profile ph-2
This commit is contained in:
parent
68b6ae6121
commit
1083b9b87f
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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
|
||||
@ -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(),
|
||||
|
||||
@ -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,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@ -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,
|
||||
});
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user