bug fix search
This commit is contained in:
parent
809d3adc08
commit
72d29d2f30
@ -2,27 +2,27 @@ C/C++ Structured Logc
|
||||
a
|
||||
_C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ׈“ãç2 瘝èã2`
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint þÇð¯è2 瘝èã2`
|
||||
^
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\android_gradle_build.json ׈“ãç2º ««¤èã2e
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\android_gradle_build.json ÿÇð¯è2º ««¤èã2e
|
||||
c
|
||||
aC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\android_gradle_build_mini.json ׈“ãç2<18> Ø«¤èã2R
|
||||
aC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\android_gradle_build_mini.json ÿÇð¯è2<18> Ø«¤èã2R
|
||||
P
|
||||
NC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build.ninja ׈“ãç2÷Û Ì¨¤èã2V
|
||||
NC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build.ninja ÿÇð¯è2÷Û Ì¨¤èã2V
|
||||
T
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build.ninja.txt ؈“ãç2[
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build.ninja.txt ÿÇð¯è2[
|
||||
Y
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build_file_index.txt ؈“ãç2
S 諤èã2\
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\build_file_index.txt ÿÇð¯è2
S 諤èã2\
|
||||
Z
|
||||
XC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\compile_commands.json ؈“ãç2`
|
||||
XC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\compile_commands.json ÿÇð¯è2`
|
||||
^
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\compile_commands.json.bin ؈“ãç2 f
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\compile_commands.json.bin ÿÇð¯è2 f
|
||||
d
|
||||
bC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\metadata_generation_command.txt ؈“ãç2
|
||||
bC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\metadata_generation_command.txt ÿÇð¯è2
|
||||
Ä Þ«¤èã2Y
|
||||
W
|
||||
UC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\prefab_config.json ؈“ãç2
( 櫤èã2^
|
||||
UC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\prefab_config.json ÿÇð¯è2
( 櫤èã2^
|
||||
\
|
||||
ZC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\symbol_folder_index.txt ؈“ãç2
Q 諤èã2W
|
||||
ZC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\arm64-v8a\symbol_folder_index.txt ÿÇð¯è2
Q 諤èã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 Loge
|
||||
c
|
||||
aC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint –‰“ãç2 ²ÿ¥èã2b
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ëÈð¯è2 ²ÿ¥èã2b
|
||||
`
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\android_gradle_build.json –‰“ãç2¾ µÿ¥èã2g
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\android_gradle_build.json ëÈð¯è2¾ µÿ¥èã2g
|
||||
e
|
||||
cC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\android_gradle_build_mini.json —‰“ãç2‘ âÿ¥èã2T
|
||||
cC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\android_gradle_build_mini.json ëÈð¯è2‘ âÿ¥èã2T
|
||||
R
|
||||
PC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build.ninja —‰“ãç2<18>Ü °õ¥èã2X
|
||||
PC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build.ninja ëÈð¯è2<18>Ü °õ¥èã2X
|
||||
V
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build.ninja.txt —‰“ãç2]
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build.ninja.txt ëÈð¯è2]
|
||||
[
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build_file_index.txt —‰“ãç2
S “€¦èã2^
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\build_file_index.txt ëÈð¯è2
S “€¦èã2^
|
||||
\
|
||||
ZC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\compile_commands.json —‰“ãç2b
|
||||
ZC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\compile_commands.json ëÈð¯è2b
|
||||
`
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\compile_commands.json.bin —‰“ãç2 h
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\compile_commands.json.bin ëÈð¯è2 h
|
||||
f
|
||||
dC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\metadata_generation_command.txt —‰“ãç2
|
||||
dC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\metadata_generation_command.txt ëÈð¯è2
|
||||
Î ‰€¦èã2[
|
||||
Y
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\prefab_config.json —‰“ãç2
( ’€¦èã2`
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\prefab_config.json ëÈð¯è2
( ’€¦èã2`
|
||||
^
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\symbol_folder_index.txt —‰“ãç2
S “€¦èã2W
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\armeabi-v7a\symbol_folder_index.txt ëÈð¯è2
S “€¦èã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]
|
||||
[
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\additional_project_files.txtC
|
||||
A
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint щ“ãç2 †½¦èã2Z
|
||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint «Éð¯è2 †½¦èã2Z
|
||||
X
|
||||
VC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\android_gradle_build.json щ“ãç2® ˜½¦èã2_
|
||||
VC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\android_gradle_build.json «Éð¯è2® ˜½¦èã2_
|
||||
]
|
||||
[C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\android_gradle_build_mini.json щ“ãç2<18> ©½¦èã2L
|
||||
[C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\android_gradle_build_mini.json «Éð¯è2<18> ©½¦èã2L
|
||||
J
|
||||
HC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build.ninja щ“ãç2ÙÛ µ»¦èã2P
|
||||
HC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build.ninja «Éð¯è2ÙÛ µ»¦èã2P
|
||||
N
|
||||
LC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build.ninja.txt щ“ãç2U
|
||||
LC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build.ninja.txt «Éð¯è2U
|
||||
S
|
||||
QC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build_file_index.txt щ“ãç2
S »½¦èã2V
|
||||
QC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\build_file_index.txt «Éð¯è2
S »½¦èã2V
|
||||
T
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\compile_commands.json щ“ãç2Z
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\compile_commands.json «Éð¯è2Z
|
||||
X
|
||||
VC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\compile_commands.json.bin щ“ãç2 `
|
||||
VC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\compile_commands.json.bin «Éð¯è2 `
|
||||
^
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\metadata_generation_command.txt щ“ãç2
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\metadata_generation_command.txt «Éð¯è2
|
||||
¦ ¬½¦èã2S
|
||||
Q
|
||||
OC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\prefab_config.json щ“ãç2
( ±½¦èã2X
|
||||
OC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\prefab_config.json «Éð¯è2
( ±½¦èã2X
|
||||
V
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\symbol_folder_index.txt Ò‰“ãç2
K ¶½¦èã2W
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86\symbol_folder_index.txt «Éð¯è2
K ¶½¦èã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`
|
||||
^
|
||||
\C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\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]
|
||||
[
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\android_gradle_build.json ÿ‰“ãç2´ ‚ئèã2b
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\android_gradle_build.json öÊð¯è2´ ‚ئèã2b
|
||||
`
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\android_gradle_build_mini.json ÿ‰“ãç2‡ …ئèã2O
|
||||
^C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\android_gradle_build_mini.json öÊð¯è2‡ …ئèã2O
|
||||
M
|
||||
KC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build.ninja ÿ‰“ãç2èÛ ¥Ö¦èã2S
|
||||
KC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build.ninja öÊð¯è2èÛ ¥Ö¦èã2S
|
||||
Q
|
||||
OC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build.ninja.txt ÿ‰“ãç2X
|
||||
OC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build.ninja.txt öÊð¯è2X
|
||||
V
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build_file_index.txt ÿ‰“ãç2
S ˆØ¦èã2Y
|
||||
TC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\build_file_index.txt öÊð¯è2
S ˆØ¦èã2Y
|
||||
W
|
||||
UC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\compile_commands.json ÿ‰“ãç2]
|
||||
UC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\compile_commands.json öÊð¯è2]
|
||||
[
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\compile_commands.json.bin ÿ‰“ãç2 c
|
||||
YC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\compile_commands.json.bin ÷Êð¯è2 c
|
||||
a
|
||||
_C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\metadata_generation_command.txt ÿ‰“ãç2
|
||||
_C:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\metadata_generation_command.txt ÷Êð¯è2
|
||||
µ †Ø¦èã2V
|
||||
T
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\prefab_config.json €Š“ãç2
( ‡Ø¦èã2[
|
||||
RC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\prefab_config.json ÷Êð¯è2
( ‡Ø¦èã2[
|
||||
Y
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\symbol_folder_index.txt €Š“ãç2
N ˆØ¦èã2W
|
||||
WC:\flutter code\new\FCSC\android\app\.cxx\Debug\2d1206wq\x86_64\symbol_folder_index.txt ÷Êð¯è2
N ˆØ¦èã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
|
||||
@ -1,6 +1,6 @@
|
||||
enum IndicatorTopic {
|
||||
economy(nameAR: 'الاقتصاد', nameEN: 'Economy'),
|
||||
social(nameAR: 'الاجتماعي', nameEN: 'Social'),
|
||||
social(nameAR: 'لاجتماعي', nameEN: 'Social'),
|
||||
environment(nameAR: 'البيئة', nameEN: 'Environment');
|
||||
|
||||
const IndicatorTopic({
|
||||
|
||||
@ -71,7 +71,6 @@ class uaenumberWidget extends ConsumerStatefulWidget {
|
||||
}
|
||||
|
||||
class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
@override
|
||||
TextEditingController _searchController = TextEditingController();
|
||||
List<dynamic> homePageData = [];
|
||||
List<dynamic> filteredData = [];
|
||||
@ -100,7 +99,6 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
}
|
||||
|
||||
Future<void> fetchData(locale) async {
|
||||
// const baseUrl = 'https://pb.venbait.in/api/getHomePageData';
|
||||
const baseUrl = '$apiUrl/api/getUAENumbersData';
|
||||
try {
|
||||
final response = await http.get(Uri.parse(baseUrl + '?language=$locale'));
|
||||
@ -109,11 +107,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
homePageData = (json.decode(response.body) as List)
|
||||
.map((e) => Map<String, dynamic>.from(e))
|
||||
.toList();
|
||||
|
||||
filteredData = List.from(homePageData);
|
||||
// Show all initially
|
||||
|
||||
// print("HomeDAta $homePageData");
|
||||
isLoading = false;
|
||||
});
|
||||
} else {
|
||||
@ -130,7 +124,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
void filterData(String query) {
|
||||
if (query.isEmpty) {
|
||||
setState(() {
|
||||
filteredData = List.from(homePageData); // Reset if empty
|
||||
filteredData = List.from(homePageData);
|
||||
});
|
||||
return;
|
||||
}
|
||||
@ -180,14 +174,13 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
|
||||
setState(() {
|
||||
filteredData = tempList;
|
||||
print(filteredData); // Debugging: Check filtered output in console
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isConnected = ref.watch(connectivityProvider);
|
||||
|
||||
// If no internet, redirect to InternetCheckScreen
|
||||
ref.listen<AsyncValue<bool>>(connectivityProvider, (previous, hasInternet) {
|
||||
if (hasInternet.value == false) {
|
||||
context.push('/internetcheck');
|
||||
@ -195,7 +188,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
});
|
||||
|
||||
ref.listen<Locale?>(localeProvider, (previous, next) async {
|
||||
final localeCode = next?.languageCode ?? 'en'; // Default to 'en' if null
|
||||
final localeCode = next?.languageCode ?? 'en';
|
||||
setState(() {
|
||||
isLoading = true;
|
||||
});
|
||||
@ -208,31 +201,26 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
|
||||
if (isLoading) {
|
||||
return Container(
|
||||
color: Color(0x98FFFCE5), // Semi-transparent background
|
||||
color: Color(0x98FFFCE5),
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
margin:
|
||||
EdgeInsets.symmetric(horizontal: 40), // Left & Right space
|
||||
margin: EdgeInsets.symmetric(horizontal: 40),
|
||||
child: LinearProgressIndicator(
|
||||
minHeight: 5, // Adjust thickness
|
||||
backgroundColor: Colors.grey[100], // Optional: Background color
|
||||
valueColor: AlwaysStoppedAnimation<Color>(
|
||||
Color(0xFFAA8E83)), // Loader color
|
||||
minHeight: 5,
|
||||
backgroundColor: Colors.grey[100],
|
||||
valueColor: AlwaysStoppedAnimation<Color>(Color(0xFFAA8E83)),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
} else if (filteredData.isEmpty) {
|
||||
return Center(child: Text("No data available"));
|
||||
}
|
||||
|
||||
return Padding(
|
||||
padding:
|
||||
const EdgeInsets.only(left: 16.0, right: 16.0, top: 5.0, bottom: 5.0),
|
||||
child: ListView(
|
||||
padding: const EdgeInsets.only(left: 16.0, right: 16.0, top: 5.0, bottom: 5.0),
|
||||
child: Column(
|
||||
children: [
|
||||
Container(
|
||||
height: 40,
|
||||
@ -246,17 +234,15 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
child: TextField(
|
||||
controller: _searchController,
|
||||
onChanged: (value) {
|
||||
filterData(
|
||||
value); // Call filter function directly on input change
|
||||
}, // Ensures vertical alignment
|
||||
// Centers text horizontally
|
||||
filterData(value);
|
||||
},
|
||||
decoration: InputDecoration(
|
||||
hintText: AppLocalizations.of(context)!.search,
|
||||
hintStyle: TextStyle(
|
||||
color: Color(0xFFAA8E83),
|
||||
fontFamily: context.translate('Roboto', 'NotoKufi'),
|
||||
fontSize: 14,
|
||||
height: 2.5, // This helps align it with the icon
|
||||
height: 2.0,
|
||||
),
|
||||
prefixIconConstraints: BoxConstraints(
|
||||
maxWidth: 42,
|
||||
@ -264,7 +250,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
),
|
||||
prefixIcon: Container(
|
||||
padding: EdgeInsets.only(right: 5, left: 5),
|
||||
alignment: Alignment.center, // Ensures the SVG is centered
|
||||
alignment: Alignment.center,
|
||||
child: SvgPicture.asset(
|
||||
MiscIconAssetPath.Search,
|
||||
semanticsLabel: 'Search',
|
||||
@ -273,72 +259,88 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
width: 18,
|
||||
),
|
||||
),
|
||||
suffixIcon: _searchController.text.isNotEmpty
|
||||
? IconButton(
|
||||
icon: Icon(
|
||||
Icons.clear,
|
||||
color: Color(0xFFAA8E83),
|
||||
size: 18,
|
||||
),
|
||||
onPressed: () {
|
||||
_searchController.clear();
|
||||
filterData('');
|
||||
},
|
||||
)
|
||||
: null,
|
||||
contentPadding: EdgeInsets.symmetric(vertical: 9, horizontal: 18.0),
|
||||
border: InputBorder.none,
|
||||
),
|
||||
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: myheight / 40,
|
||||
),
|
||||
...filteredData.map<Widget>((mainTopic) {
|
||||
String colorPattern = mainTopic['color_pattern'];
|
||||
print('colorPattern $colorPattern');
|
||||
Color backgroundColor = Color(int.parse(colorPattern));
|
||||
print('backgroundColor $backgroundColor');
|
||||
Color borderColor = backgroundColor;
|
||||
int index = filteredData.indexOf(mainTopic);
|
||||
bool isFirstTile = index == 0;
|
||||
SizedBox(height: myheight / 40),
|
||||
Expanded(
|
||||
child: filteredData.isEmpty
|
||||
? Center(child: Text("No data available"))
|
||||
: ListView(
|
||||
children: [
|
||||
...filteredData.map<Widget>((mainTopic) {
|
||||
String colorPattern = mainTopic['color_pattern'];
|
||||
Color backgroundColor = Color(int.parse(colorPattern));
|
||||
Color borderColor = backgroundColor;
|
||||
int index = filteredData.indexOf(mainTopic);
|
||||
|
||||
return CustomExpandableTile(
|
||||
index: index,
|
||||
isExpanded: expandedIndex == index, // Compare with expandedIndex
|
||||
onTap: (index) {
|
||||
setState(() {
|
||||
expandedIndex = (expandedIndex == index) ? null : index;
|
||||
});
|
||||
},
|
||||
title: mainTopic['main_topic'],
|
||||
titleBackgroundColor: backgroundColor,
|
||||
children: _buildSubTopics(mainTopic['sub_topics'] ?? [], mywidth,
|
||||
myheight, borderColor, colorPattern, mainTopic['main_topic']),
|
||||
);
|
||||
}),
|
||||
return CustomExpandableTile(
|
||||
index: index,
|
||||
isExpanded: expandedIndex == index,
|
||||
onTap: (index) {
|
||||
setState(() {
|
||||
expandedIndex = (expandedIndex == index) ? null : index;
|
||||
});
|
||||
},
|
||||
title: mainTopic['main_topic'],
|
||||
titleBackgroundColor: backgroundColor,
|
||||
children: _buildSubTopics(
|
||||
mainTopic['sub_topics'] ?? [],
|
||||
mywidth,
|
||||
myheight,
|
||||
borderColor,
|
||||
colorPattern,
|
||||
mainTopic['main_topic']),
|
||||
);
|
||||
}),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
List<Widget> _buildSubTopics(List<dynamic> subTopics, double myWidth,
|
||||
myheight, Color borderColor, String colorPattern, mainTopic) {
|
||||
print('colorPattern123 $borderColor');
|
||||
// Sort sub-topics based on `sub_topic_list_order`
|
||||
subTopics.sort((a, b) => (a['sub_topic_list_order'] ?? 0)
|
||||
.compareTo(b['sub_topic_list_order'] ?? 0));
|
||||
List<Widget> _buildSubTopics(List<dynamic> subTopics, double myWidth, myheight,
|
||||
Color borderColor, String colorPattern, mainTopic) {
|
||||
subTopics.sort((a, b) =>
|
||||
(a['sub_topic_list_order'] ?? 0).compareTo(b['sub_topic_list_order'] ?? 0));
|
||||
|
||||
return subTopics
|
||||
.map<Widget>((subTopic) => Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
buildCategoryTitle(subTopic['sub_topic'], borderColor),
|
||||
..._buildDataSetCards(subTopic['tile_data'] ?? [], myWidth,
|
||||
borderColor, colorPattern, mainTopic),
|
||||
],
|
||||
))
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
buildCategoryTitle(subTopic['sub_topic'], borderColor),
|
||||
..._buildDataSetCards(subTopic['tile_data'] ?? [], myWidth,
|
||||
borderColor, colorPattern, mainTopic),
|
||||
],
|
||||
))
|
||||
.toList();
|
||||
}
|
||||
|
||||
List<Widget> _buildDataSetCards(List<dynamic> tileData, double myWidth,
|
||||
Color borderColor, colorPattern, mainTopic) {
|
||||
// Sort datasets based on `data_set_list_order`
|
||||
tileData.sort((a, b) => (a['data_set_list_order'] ?? 0)
|
||||
.compareTo(b['data_set_list_order'] ?? 0));
|
||||
tileData.sort((a, b) =>
|
||||
(a['data_set_list_order'] ?? 0).compareTo(b['data_set_list_order'] ?? 0));
|
||||
|
||||
List<Widget> rows = [];
|
||||
for (int i = 0; i < tileData.length; i += 2) {
|
||||
// Take 1 or 2 items for the row
|
||||
final rowItems = tileData.sublist(
|
||||
i,
|
||||
i + 2 > tileData.length ? tileData.length : i + 2,
|
||||
@ -348,15 +350,13 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: rowItems.map<Widget>((data) {
|
||||
// Calculate width: full width for one item, half for two items
|
||||
final cardWidth = rowItems.length == 1
|
||||
? myWidth
|
||||
: (myWidth - 16) / 2.6; // Subtract spacing for padding
|
||||
: (myWidth - 16) / 2.6;
|
||||
|
||||
return Expanded(
|
||||
child: Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 5.0), // Add spacing
|
||||
padding: const EdgeInsets.symmetric(horizontal: 5.0),
|
||||
child: buildCard(
|
||||
context,
|
||||
data['data_set_tile_heading'] ?? '',
|
||||
@ -367,8 +367,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
borderColor,
|
||||
colorPattern,
|
||||
cardWidth,
|
||||
mainTopic // Pass the calculated width
|
||||
),
|
||||
mainTopic),
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
@ -380,22 +379,22 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
|
||||
Widget buildCategoryTitle(String title, Color color) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(top: 1.2, bottom: 1.2),
|
||||
// padding: const EdgeInsets.symmetric(vertical: 8.0),
|
||||
child: Center(
|
||||
child: Text(
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: color,
|
||||
padding: const EdgeInsets.only(top: 1.2, bottom: 1.2),
|
||||
child: Center(
|
||||
child: Text(
|
||||
title,
|
||||
style: TextStyle(
|
||||
fontFamily: context.translate(
|
||||
'Roboto',
|
||||
'NotoKufi',
|
||||
),
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: color,
|
||||
),
|
||||
));
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget buildCardRow(List<Widget> cards) {
|
||||
@ -423,11 +422,7 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
colorPattern,
|
||||
double mywidth,
|
||||
String mainTopic) {
|
||||
print('UAE Numbers $value , $title');
|
||||
// Check if title is "Population Growth"
|
||||
bool isPopulationGrowth = title == "Population Growth";
|
||||
|
||||
// Convert value to double for checking positive or negative (only for Population Growth)
|
||||
double parsedValue = isPopulationGrowth
|
||||
? double.tryParse(value.replaceAll('%', '')) ?? 0.0
|
||||
: 0.0;
|
||||
@ -435,31 +430,23 @@ class _UaenumberWidgetState extends ConsumerState<uaenumberWidget> {
|
||||
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
// print('checking data');
|
||||
// print(mainTopic);
|
||||
// print(title);
|
||||
// print(subtitle);
|
||||
// print(data_set);
|
||||
final encodedMainTopic = Uri.encodeComponent(mainTopic);
|
||||
final encodedTitle = Uri.encodeComponent(title);
|
||||
final encodedKey = Uri.encodeQueryComponent('uaenumbers');
|
||||
// Pass mainTopic and title as query parameters
|
||||
context.push(
|
||||
'/chartScreen/$data_set?bgColor=$colorPattern&mainTopic=$encodedMainTopic&title=$encodedTitle&key=$encodedKey');
|
||||
// context.go('/chartScreen/$data_set');
|
||||
},
|
||||
child: Card(
|
||||
elevation: 1,
|
||||
child: Container(
|
||||
width: mywidth,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white, // Background color
|
||||
color: Colors.white,
|
||||
border: Border.all(
|
||||
color: bordercolor, // Border color
|
||||
width: 1, // Border width
|
||||
color: bordercolor,
|
||||
width: 1,
|
||||
),
|
||||
borderRadius:
|
||||
BorderRadius.circular(12), // Optional: Rounded corners
|
||||
borderRadius: BorderRadius.circular(12),
|
||||
),
|
||||
padding: const EdgeInsets.only(
|
||||
top: 3.0, bottom: 3.0, left: 5.0, right: 5.0),
|
||||
|
||||
@ -89,9 +89,9 @@ class ChartWidget extends StatelessWidget {
|
||||
// Function to get colors for both English & Arabic keys
|
||||
List<Color> get uniqueColors {
|
||||
final Map<String, String> translations = {
|
||||
'اقتصاد': 'ECONOMY',
|
||||
'اجتماعي': 'SOCIAL',
|
||||
'بيئة': 'ENVIRONMENT',
|
||||
'الاقتصاد': 'ECONOMY',
|
||||
'الاجتماعي': 'SOCIAL',
|
||||
'البيئة': 'ENVIRONMENT',
|
||||
};
|
||||
|
||||
String key = translations[chartHeader] ?? chartHeader;
|
||||
@ -100,9 +100,9 @@ class ChartWidget extends StatelessWidget {
|
||||
|
||||
List<Color> get uniqueColorsForTwo {
|
||||
final Map<String, String> translations = {
|
||||
'اقتصاد': 'ECONOMY',
|
||||
'اجتماعي': 'SOCIAL',
|
||||
'بيئة': 'ENVIRONMENT',
|
||||
'الاقتصاد': 'ECONOMY',
|
||||
'الاجتماعي': 'SOCIAL',
|
||||
'البيئة': 'ENVIRONMENT',
|
||||
};
|
||||
|
||||
String key = translations[chartHeader] ?? chartHeader;
|
||||
@ -111,9 +111,9 @@ class ChartWidget extends StatelessWidget {
|
||||
|
||||
List<Color> get uniqueColorsForThree {
|
||||
final Map<String, String> translations = {
|
||||
'اقتصاد': 'ECONOMY',
|
||||
'اجتماعي': 'SOCIAL',
|
||||
'بيئة': 'ENVIRONMENT',
|
||||
'الاقتصاد': 'ECONOMY',
|
||||
'الاجتماعي': 'SOCIAL',
|
||||
'البيئة': 'ENVIRONMENT',
|
||||
};
|
||||
|
||||
String key = translations[chartHeader] ?? chartHeader;
|
||||
|
||||
@ -108,9 +108,9 @@ class _BookMarkState extends ConsumerState<BookMark> {
|
||||
List<Map<String, dynamic>> fetchedData) {
|
||||
// Define the required order
|
||||
List<String> order = [
|
||||
context.translate('ECONOMY', 'اقتصاد'),
|
||||
context.translate('SOCIAL', 'اجتماعي'),
|
||||
context.translate('ENVIRONMENT', 'بيئة')
|
||||
context.translate('ECONOMY', 'الاقتصاد'),
|
||||
context.translate('SOCIAL', 'الاجتماعي'),
|
||||
context.translate('ENVIRONMENT', 'البيئة')
|
||||
];
|
||||
|
||||
// Create a list to store sorted data
|
||||
@ -118,9 +118,9 @@ class _BookMarkState extends ConsumerState<BookMark> {
|
||||
|
||||
// Group data based on categories
|
||||
Map<String, List<Map<String, dynamic>>> groupedData = {
|
||||
context.translate('ECONOMY', 'اقتصاد'): [],
|
||||
context.translate('SOCIAL', 'اجتماعي'): [],
|
||||
context.translate('ENVIRONMENT', 'بيئة'): []
|
||||
context.translate('ECONOMY', 'الاقتصاد'): [],
|
||||
context.translate('SOCIAL', 'الاجتماعي'): [],
|
||||
context.translate('ENVIRONMENT', 'البيئة'): []
|
||||
};
|
||||
|
||||
// Categorize data
|
||||
|
||||
Loading…
Reference in New Issue
Block a user