country profile ph-2
This commit is contained in:
parent
68b6ae6121
commit
1083b9b87f
@ -2,27 +2,27 @@ C/C++ Structured Logd
|
|||||||
b
|
b
|
||||||
`C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\additional_project_files.txtC
|
`C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\arm64-v8a\additional_project_files.txtC
|
||||||
A
|
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
|
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
|
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
|
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
|
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
|
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
|
Ç “·•šì2Z
|
||||||
X
|
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
|
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
|
d
|
||||||
bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\additional_project_files.txtC
|
bC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ê·×Óñ2 Ú––šì2c
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Õ°ó÷ò2 Ú––šì2c
|
||||||
a
|
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
|
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
|
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
|
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
|
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
|
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\
|
Ñ ×˜–šì2\
|
||||||
Z
|
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
|
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
|
ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint <EFBFBD>¸×Óñ2 ßï–šì2[
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ±ó÷ò2 ßï–šì2[
|
||||||
Y
|
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
|
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
|
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
|
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
|
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
|
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
|
© ôï–šì2T
|
||||||
R
|
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
|
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
|
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
|
]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\additional_project_files.txtC
|
||||||
A
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
¸ œ„—šì2W
|
||||||
U
|
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
|
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
|
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/config/sessionCheckScreen.dart';
|
||||||
import 'package:uae_stat/domain/entities/session_entity.dart';
|
import 'package:uae_stat/domain/entities/session_entity.dart';
|
||||||
import 'package:uae_stat/infrastructure/data/p_auth_repo.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/Bottom%20Navigation%20Pages/UAE_Numbers/Social/marriages.dart';
|
||||||
import 'package:uae_stat/presentation/Screens/app_tour/WelcomePage.dart';
|
import 'package:uae_stat/presentation/Screens/app_tour/WelcomePage.dart';
|
||||||
import 'package:uae_stat/presentation/Screens/auth_verification/forgot_password.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(),
|
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(
|
GoRoute(
|
||||||
path: '/marriages',
|
path: '/marriages',
|
||||||
builder: (context, state) => Marriages(),
|
builder: (context, state) => Marriages(),
|
||||||
|
|||||||
@ -7,26 +7,129 @@ class Competitiveness extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
double myheight = MediaQuery.of(context).size.height;
|
|
||||||
double mywidth = MediaQuery.of(context).size.width;
|
|
||||||
return PopScope(
|
return PopScope(
|
||||||
canPop: false, // Allow back navigation only if not login screen
|
canPop: false,
|
||||||
onPopInvokedWithResult: (didPop, result) {
|
onPopInvokedWithResult: (didPop, result) {
|
||||||
if (didPop) return;
|
if (didPop) return;
|
||||||
context.go('/myhomepage'); // Show exit confirmation dialog
|
context.go('/myhomepage');
|
||||||
},
|
},
|
||||||
child: BaseScaffold(
|
child: BaseScaffold(
|
||||||
title: Center(
|
title: Center(child: Text("UAE Competitiveness")),
|
||||||
child: SizedBox(
|
|
||||||
height: myheight / 5,
|
|
||||||
width: mywidth / 3,
|
|
||||||
child: Image(image: AssetImage('assets/logos/uae_stat.png')))),
|
|
||||||
body: CompetitivenessState(context),
|
body: CompetitivenessState(context),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget CompetitivenessState(BuildContext 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');
|
context.go('/myhomepage');
|
||||||
},
|
},
|
||||||
child: BaseScaffold(
|
child: BaseScaffold(
|
||||||
title: Center(
|
title: Text(
|
||||||
child: SizedBox(
|
context.translate(
|
||||||
height: myheight / 5,
|
'Country Profile',
|
||||||
width: mywidth / 3,
|
'ملف الدولة',
|
||||||
child: const Image(image: AssetImage('assets/logos/uae_stat.png')),
|
),
|
||||||
|
style: TextStyle(
|
||||||
|
fontFamily: context.translate(
|
||||||
|
'Roboto',
|
||||||
|
'NotoKufi',
|
||||||
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(left: 12.0),
|
padding: const EdgeInsets.symmetric(horizontal: 12.0, vertical: 12.0),
|
||||||
child: TextField(
|
child: Container(
|
||||||
controller: _searchController,
|
decoration: BoxDecoration(
|
||||||
onChanged: (value) {
|
color: Colors.white,
|
||||||
filterData(value);
|
borderRadius: BorderRadius.circular(30.0),
|
||||||
},
|
border: Border.all(width: 1, color: Color(0xFFAA8E83)),
|
||||||
decoration: InputDecoration(
|
),
|
||||||
hintText: AppLocalizations.of(context)!.search,
|
child: TextField(
|
||||||
hintStyle: TextStyle(
|
controller: _searchController,
|
||||||
color: Color(0xFFAA8E83),
|
onChanged: (value) {
|
||||||
fontFamily: context.translate('Roboto', 'NotoKufi'),
|
filterData(value);
|
||||||
fontSize: 14,
|
},
|
||||||
height: 1.8,
|
decoration: InputDecoration(
|
||||||
),
|
hintText: AppLocalizations.of(context)!.searchCountry,
|
||||||
prefixIconConstraints: BoxConstraints(
|
hintStyle: TextStyle(
|
||||||
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),
|
color: Color(0xFFAA8E83),
|
||||||
size: 18,
|
fontFamily: context.translate('Roboto', 'NotoKufi'),
|
||||||
|
fontSize: 14,
|
||||||
|
height: 1.8,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
prefixIconConstraints: BoxConstraints(
|
||||||
_searchController.clear();
|
maxWidth: 42,
|
||||||
filterData('');
|
maxHeight: 42,
|
||||||
},
|
),
|
||||||
)
|
prefixIcon: Container(
|
||||||
: null,
|
padding: EdgeInsets.only(right: 5, left: 5),
|
||||||
contentPadding: EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
|
alignment: Alignment.center,
|
||||||
border: InputBorder.none,
|
child: SvgPicture.asset(
|
||||||
// contentPadding:
|
MiscIconAssetPath.Search,
|
||||||
// EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
|
semanticsLabel: 'Search',
|
||||||
// contentPadding: EdgeInsets.zero,
|
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(
|
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,
|
itemCount: filtered.length,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
final country = filtered[index];
|
final country = filtered[index];
|
||||||
@ -135,7 +157,12 @@ class _CountryProfilePageState extends ConsumerState<CountryProfilePage> {
|
|||||||
style: const TextStyle(fontSize: 24),
|
style: const TextStyle(fontSize: 24),
|
||||||
),
|
),
|
||||||
title: Text(country['name']!),
|
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,
|
super.key,
|
||||||
required this.body,
|
required this.body,
|
||||||
required this.title,
|
required this.title,
|
||||||
|
this.leading,
|
||||||
|
this.hasDrawer = true,
|
||||||
this.actions,
|
this.actions,
|
||||||
this.showDivider = false,
|
this.showDivider = false,
|
||||||
this.dividerColor,
|
this.dividerColor,
|
||||||
@ -47,6 +49,8 @@ class BaseScaffold extends ConsumerStatefulWidget {
|
|||||||
});
|
});
|
||||||
final Widget body;
|
final Widget body;
|
||||||
final Widget title;
|
final Widget title;
|
||||||
|
final Widget? leading;
|
||||||
|
final bool hasDrawer;
|
||||||
final Widget? navBackArrow;
|
final Widget? navBackArrow;
|
||||||
final Color? dividerColor;
|
final Color? dividerColor;
|
||||||
final bool showDivider;
|
final bool showDivider;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user