This commit is contained in:
Surendiran 2025-06-06 15:30:04 +05:30
commit ebf5b5e853
10 changed files with 1302 additions and 1188 deletions

View File

@ -0,0 +1,28 @@
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
_
]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
Q
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\
Z
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
_
]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
Ç “·•šì2Z
X
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
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  àìœýó2 § ÑÜÐßÓ2

View File

@ -0,0 +1,28 @@
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  å<C3A5>ýó2  Úšì2c
a
_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build.json  æ<C3A6>ýó2À ìšì2h
f
dC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\android_gradle_build_mini.json  æ<C3A6>ýó2 õ—šì2U
S
QC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja  æ<C3A6>ýó2†Ü ì2Y
W
UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build.ninja.txt  æ<C3A6>ýó2^
\
ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\build_file_index.txt  æ<C3A6>ýó2 S ì2_
]
[C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json  æ<C3A6>ýó2c
a
_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\compile_commands.json.bin  æ<C3A6>ýó2 i
g
eC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\metadata_generation_command.txt  æ<C3A6>ýó2
Ñ טšì2\
Z
XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\prefab_config.json  æ<C3A6>ýó2  ( ù˜šì2a
_
]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\armeabi-v7a\symbol_folder_index.txt  æ<C3A6>ýó2  T ¾™šì2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  æ<C3A6>ýó2 § ÑÜÐßÓ2

View File

@ -0,0 +1,28 @@
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  þ<C3BE>ýó2  ßïšì2[
Y
WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build.json  <08><EFBFBD>ýó2° åïšì2`
^
\C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\android_gradle_build_mini.json  <08><EFBFBD>ýó2ƒ ðïšì2M
K
IC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja  <08><EFBFBD>ýó2ÞÛ îšì2Q
O
MC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build.ninja.txt  <08><EFBFBD>ýó2V
T
RC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\build_file_index.txt  <08><EFBFBD>ýó2 S þïšì2W
U
SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json  <08><EFBFBD>ýó2[
Y
WC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\compile_commands.json.bin  <08><EFBFBD>ýó2 a
_
]C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\metadata_generation_command.txt  <08><EFBFBD>ýó2
© ôïšì2T
R
PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\prefab_config.json  <E2809A>ýó2  ( úïšì2Y
W
UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86\symbol_folder_index.txt  <E2809A>ýó2  L ýïšì2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  <E2809A>ýó2 § ÑÜÐßÓ2

View File

@ -0,0 +1,28 @@
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  É—<C389>ýó2  Œ„—šì2^
\
ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build.json  É—<C389>ýó2 “„—šì2c
a
_C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\android_gradle_build_mini.json  É—<C389>ýó2 „—šì2P
N
LC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja  É—<C389>ýó2íÛ ç—šì2T
R
PC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build.ninja.txt  Ê—<C38A>ýó2Y
W
UC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\build_file_index.txt  Ê—<C38A>ýó2 S ž„—šì2Z
X
VC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json  Ê—<C38A>ýó2^
\
ZC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\compile_commands.json.bin  Ê—<C38A>ýó2 d
b
`C:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\metadata_generation_command.txt  Ê—<C38A>ýó2
¸ œ„—šì2W
U
SC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\prefab_config.json  Ê—<C38A>ýó2  ( <20>„—šì2\
Z
XC:\flutter code\FCSC\FCSC\android\app\.cxx\Debug\m4rj1019\x86_64\symbol_folder_index.txt  Ê—<C38A>ýó2  O <20>„—šì2W
U
SC:\flutter\src\flutter\packages\flutter_tools\gradle\src\main\groovy\CMakeLists.txt  Ê—<C38A>ýó2 § ÑÜÐßÓ2

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,216 +1,216 @@
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
class ReportDetailPage extends StatelessWidget {
final Map<String, dynamic> report;
const ReportDetailPage({super.key, required this.report});
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return BaseScaffold(
title: Text(
context.translate('UAE Competitiveness', 'القدرة التنافسية للإمارات'), // Add localization
style: TextStyle(
fontFamily: context.translate('Roboto', 'NotoKufi'),
),
),
// hasDrawer: false,
showBackButton: true,
body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Header Section: Report Title and Image
Center(
child: Column(
children: [
Image.asset(
'assets/competitiveness/solo.png',
height: 80, // Increase size for prominence
),
const SizedBox(height: 8),
Text(
context.translate('Prosperity Index (2023)', 'مؤشر الازدهار (2023)'),
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
),
),
],
),
),
const SizedBox(height: 24),
// Description Section
Text(
context.translate(
"The Legatum Prosperity Index is published annually by the Legatum Institute. It is a policy-focused report that measures the current state of prosperity since 2007. Using the Prosperity Index framework, nations around the world can assess their strengths and weaknesses in order to determine the economic and strategic choices that need to be made to further build inclusive societies, open economies, and empowered people to drive greater levels of prosperity.",
"يُنشر مؤشر الازدهار الليجاتوم سنويًا من قبل معهد ليجاتوم. إنه تقرير يركز على السياسات ويقيس الحالة الحالية للازدهار منذ عام 2007. باستخدام إطار مؤشر الازدهار، يمكن للدول حول العالم تقييم نقاط قوتها وضعفها لتحديد الخيارات الاقتصادية والاستراتيجية التي يجب اتخاذها لتعزيز بناء مجتمعات شاملة واقتصادات مفتوحة وتمكين الأفراد لدفع مستويات أعلى من الازدهار.",
),
style: const TextStyle(fontSize: 14),
),
const SizedBox(height: 24),
// Ranking Section (Using LeaderCard-like styling)
Wrap(
spacing: 16,
runSpacing: 16,
alignment: WrapAlignment.center,
children: [
_RankingCard(
title: context.translate('Rank in 2023', 'الترتيب في 2023'),
value: "44",
icon: const Icon(Icons.arrow_downward, color: Colors.red, size: 16),
),
_RankingCard(
title: context.translate('vs. Previous Edition', 'مقارنة بالإصدار السابق'),
value: "41",
icon: const SizedBox.shrink(), // No icon for this
),
],
),
const SizedBox(height: 24),
// Country Rankings Section (Using CategoryButton-like styling)
// Wrap(
// spacing: 16,
// runSpacing: 16,
// alignment: WrapAlignment.center,
// children: [
// _CountryRankingButton(
// title: context.translate('First Globally: DENMARK', 'الأول عالميًا: الدنمارك'),
// imagePath: 'assets/flags/denmark.png',
// color: const Color(0xFFD7C1AF),
// ),
// _CountryRankingButton(
// title: context.translate('First in GCC: MULTIPLE COUNTRIES', 'الأول في دول الخليج: دول متعددة'),
// imagePath: null, // No specific flag
// color: const Color(0xFFAEC6CF),
// ),
// _CountryRankingButton(
// title: context.translate('First in Arab Countries: UAE', 'الأول في الدول العربية: الإمارات'),
// imagePath: 'assets/flags/uae.png',
// color: const Color(0xFFD7AFAF),
// ),
// ],
// ),
],
),
),
);
}
}
// Ranking Card (similar to _LeaderCard)
class _RankingCard extends StatelessWidget {
final String title;
final String value;
final Widget icon;
const _RankingCard({
Key? key,
required this.title,
required this.value,
required this.icon,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: 160,
child: Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.grey[100],
borderRadius: BorderRadius.circular(12),
),
child: Column(
children: [
Text(
title,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 13,
color: Colors.black54,
),
),
const SizedBox(height: 4),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
value,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
const SizedBox(width: 4),
icon,
],
),
],
),
),
);
}
}
// Country Ranking Button (similar to _CategoryButton)
class _CountryRankingButton extends StatelessWidget {
final String title;
final String? imagePath;
final Color color;
const _CountryRankingButton({
Key? key,
required this.title,
required this.imagePath,
required this.color,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: 160,
height: 70,
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(16),
),
alignment: Alignment.center,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (imagePath != null) ...[
Image.asset(
imagePath!,
width: 24,
height: 24,
),
const SizedBox(width: 8),
],
Flexible(
child: Text(
title,
style: const TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 14,
),
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
),
),
],
),
);
}
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
class ReportDetailPage extends StatelessWidget {
final Map<String, dynamic> report;
const ReportDetailPage({super.key, required this.report});
@override
Widget build(BuildContext context) {
double width = MediaQuery.of(context).size.width;
return BaseScaffold(
title: Text(
context.translate('UAE Competitiveness', 'القدرة التنافسية للإمارات'), // Add localization
style: TextStyle(
fontFamily: context.translate('Roboto', 'NotoKufi'),
),
),
// hasDrawer: false,
showBackButton: true,
body: SingleChildScrollView(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Header Section: Report Title and Image
Center(
child: Column(
children: [
Image.asset(
'assets/competitiveness/solo.png',
height: 80, // Increase size for prominence
),
const SizedBox(height: 8),
Text(
context.translate('Prosperity Index (2023)', 'مؤشر الازدهار (2023)'),
style: const TextStyle(
fontSize: 22,
fontWeight: FontWeight.bold,
),
),
],
),
),
const SizedBox(height: 24),
// Description Section
Text(
context.translate(
"The Legatum Prosperity Index is published annually by the Legatum Institute. It is a policy-focused report that measures the current state of prosperity since 2007. Using the Prosperity Index framework, nations around the world can assess their strengths and weaknesses in order to determine the economic and strategic choices that need to be made to further build inclusive societies, open economies, and empowered people to drive greater levels of prosperity.",
"يُنشر مؤشر الازدهار الليجاتوم سنويًا من قبل معهد ليجاتوم. إنه تقرير يركز على السياسات ويقيس الحالة الحالية للازدهار منذ عام 2007. باستخدام إطار مؤشر الازدهار، يمكن للدول حول العالم تقييم نقاط قوتها وضعفها لتحديد الخيارات الاقتصادية والاستراتيجية التي يجب اتخاذها لتعزيز بناء مجتمعات شاملة واقتصادات مفتوحة وتمكين الأفراد لدفع مستويات أعلى من الازدهار.",
),
style: const TextStyle(fontSize: 14),
),
const SizedBox(height: 24),
// Ranking Section (Using LeaderCard-like styling)
Wrap(
spacing: 16,
runSpacing: 16,
alignment: WrapAlignment.center,
children: [
_RankingCard(
title: context.translate('Rank in 2023', 'الترتيب في 2023'),
value: "44",
icon: const Icon(Icons.arrow_downward, color: Colors.red, size: 16),
),
_RankingCard(
title: context.translate('vs. Previous Edition', 'مقارنة بالإصدار السابق'),
value: "41",
icon: const SizedBox.shrink(), // No icon for this
),
],
),
const SizedBox(height: 24),
// Country Rankings Section (Using CategoryButton-like styling)
// Wrap(
// spacing: 16,
// runSpacing: 16,
// alignment: WrapAlignment.center,
// children: [
// _CountryRankingButton(
// title: context.translate('First Globally: DENMARK', 'الأول عالميًا: الدنمارك'),
// imagePath: 'assets/flags/denmark.png',
// color: const Color(0xFFD7C1AF),
// ),
// _CountryRankingButton(
// title: context.translate('First in GCC: MULTIPLE COUNTRIES', 'الأول في دول الخليج: دول متعددة'),
// imagePath: null, // No specific flag
// color: const Color(0xFFAEC6CF),
// ),
// _CountryRankingButton(
// title: context.translate('First in Arab Countries: UAE', 'الأول في الدول العربية: الإمارات'),
// imagePath: 'assets/flags/uae.png',
// color: const Color(0xFFD7AFAF),
// ),
// ],
// ),
],
),
),
);
}
}
// Ranking Card (similar to _LeaderCard)
class _RankingCard extends StatelessWidget {
final String title;
final String value;
final Widget icon;
const _RankingCard({
Key? key,
required this.title,
required this.value,
required this.icon,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: 160,
child: Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.grey[100],
borderRadius: BorderRadius.circular(12),
),
child: Column(
children: [
Text(
title,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 13,
color: Colors.black54,
),
),
const SizedBox(height: 4),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
value,
textAlign: TextAlign.center,
style: const TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
const SizedBox(width: 4),
icon,
],
),
],
),
),
);
}
}
// Country Ranking Button (similar to _CategoryButton)
class _CountryRankingButton extends StatelessWidget {
final String title;
final String? imagePath;
final Color color;
const _CountryRankingButton({
Key? key,
required this.title,
required this.imagePath,
required this.color,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: 160,
height: 70,
decoration: BoxDecoration(
color: color,
borderRadius: BorderRadius.circular(16),
),
alignment: Alignment.center,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (imagePath != null) ...[
Image.asset(
imagePath!,
width: 24,
height: 24,
),
const SizedBox(width: 8),
],
Flexible(
child: Text(
title,
style: const TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 14,
),
textAlign: TextAlign.center,
overflow: TextOverflow.ellipsis,
),
),
],
),
);
}
}

View File

@ -1,157 +1,157 @@
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
class Competitiveness extends StatelessWidget {
const Competitiveness({super.key});
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
context.go('/myhomepage');
},
child: BaseScaffold(
title: Text(
context.translate(
'UAE Competitiveness',
'تنافسية دولة الإمارات العربية المتحدة',
),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
)
),
),
body: CompetitivenessState(context),
),
);
}
Widget CompetitivenessState(BuildContext context) {
final List<Map<String, dynamic>> reports = [
{
'rank': 44,
'title': 'Prosperity Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 26,
'title': 'World Happiness Report (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Color(0xFF844F36),
},
{
'rank': 7,
'title': 'Logistics Performance Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 10,
'title': 'Global Soft Power Index (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Colors.blue,
},
{
'rank': 76,
'title': 'Global Terrorism Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Color(0xFF844F36),
},
{
'rank': 10,
'title': 'The World Competitiveness Yearbook (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Colors.blue,
},
{
'rank': 71,
'title': 'Global Gender Gap Report (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 29,
'title': 'Competitive Industrial Performance Index (2023)',
'logo': 'assets/competitiveness/soloo.png',
'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: InkWell(
onTap: () {
// Navigate to detail page with arguments
context.push('/reportDetail', extra: report);
},
child: Container(
decoration: BoxDecoration(
border: Border.all(color: report['borderColor']),
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Rank',
style: TextStyle(fontSize: 12, color: Colors.grey[600]),
),
Text(
'${report['rank']}',
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
],
),
const SizedBox(width: 12),
Expanded(
child: Text(
report['title'],
style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
),
),
const SizedBox(width: 8),
Container(
height: 58,
width: 69,
alignment: Alignment.center,
child: Image.asset(
report['logo'],
fit: BoxFit.fitHeight,
),
),
],
),
),
),
);
},
),
),
],
);
}
}
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'package:uae_stat/domain/use_cases/language.dart';
import 'package:uae_stat/presentation/routes/drawer_routes/custom_drawer_routes.dart';
class Competitiveness extends StatelessWidget {
const Competitiveness({super.key});
@override
Widget build(BuildContext context) {
return PopScope(
canPop: false,
onPopInvokedWithResult: (didPop, result) {
if (didPop) return;
context.go('/myhomepage');
},
child: BaseScaffold(
title: Text(
context.translate(
'UAE Competitiveness',
'تنافسية دولة الإمارات العربية المتحدة',
),
style: TextStyle(
fontFamily: context.translate(
'Roboto',
'NotoKufi',
)
),
),
body: CompetitivenessState(context),
),
);
}
Widget CompetitivenessState(BuildContext context) {
final List<Map<String, dynamic>> reports = [
{
'rank': 44,
'title': 'Prosperity Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 26,
'title': 'World Happiness Report (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Color(0xFF844F36),
},
{
'rank': 7,
'title': 'Logistics Performance Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 10,
'title': 'Global Soft Power Index (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Colors.blue,
},
{
'rank': 76,
'title': 'Global Terrorism Index (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Color(0xFF844F36),
},
{
'rank': 10,
'title': 'The World Competitiveness Yearbook (2023)',
'logo': 'assets/competitiveness/soloo.png',
'borderColor': Colors.blue,
},
{
'rank': 71,
'title': 'Global Gender Gap Report (2023)',
'logo': 'assets/competitiveness/solo.png',
'borderColor': Colors.blue,
},
{
'rank': 29,
'title': 'Competitive Industrial Performance Index (2023)',
'logo': 'assets/competitiveness/soloo.png',
'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: InkWell(
onTap: () {
// Navigate to detail page with arguments
context.push('/reportDetail', extra: report);
},
child: Container(
decoration: BoxDecoration(
border: Border.all(color: report['borderColor']),
borderRadius: BorderRadius.circular(12),
),
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
child: Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Rank',
style: TextStyle(fontSize: 12, color: Colors.grey[600]),
),
Text(
'${report['rank']}',
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
],
),
const SizedBox(width: 12),
Expanded(
child: Text(
report['title'],
style: const TextStyle(fontSize: 14, fontWeight: FontWeight.w500),
),
),
const SizedBox(width: 8),
Container(
height: 58,
width: 69,
alignment: Alignment.center,
child: Image.asset(
report['logo'],
fit: BoxFit.fitHeight,
),
),
],
),
),
),
);
},
),
),
],
);
}
}

View File

@ -122,6 +122,8 @@ flutter:
- assets/backgrounds/
- assets/backgrounds/from_alsaray/
- assets/country_flags/
- assets/country-profile/
- assets/competitiveness/
- assets/cached_responses/informatica/
- assets/cached_responses/sharepoint/
- assets/cached_responses/qlik/