diff --git a/assets/icons/misc/Search.svg b/assets/icons/misc/Search.svg new file mode 100644 index 00000000..076d7f9a --- /dev/null +++ b/assets/icons/misc/Search.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/uae_numbers/Filter.svg b/assets/icons/uae_numbers/Filter.svg new file mode 100644 index 00000000..131ae70c --- /dev/null +++ b/assets/icons/uae_numbers/Filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart b/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart index 0b01da5f..3b1a35a7 100644 --- a/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart +++ b/lib/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart @@ -12,5 +12,5 @@ abstract class MiscIconAssetPath { static const save = '$_basePath/save.png'; static const group = '$_basePath/group.png'; static const search = '$_basePath/search.png'; - + static const Search = '$_basePath/Search.svg'; } diff --git a/lib/infrastructure/services/img_asset_paths/icons/uae_numbers_asset_path.dart b/lib/infrastructure/services/img_asset_paths/icons/uae_numbers_asset_path.dart index 167127df..6cec49e3 100644 --- a/lib/infrastructure/services/img_asset_paths/icons/uae_numbers_asset_path.dart +++ b/lib/infrastructure/services/img_asset_paths/icons/uae_numbers_asset_path.dart @@ -6,5 +6,6 @@ abstract class UaeNumbersAssetPath { // static const bookmarksSelectedUae = '$_basePath/bookmarksSelectedUae.png'; // static const shareUae = '$_basePath/share.png'; static const share = '$_basePath/share.svg'; - static const filterUae = '$_basePath/filters.png'; + static const filterUae = '$_basePath/filters.png'; + static const filterCharts = '$_basePath/Filter.svg'; } diff --git a/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart b/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart index c3940cf7..0c825532 100644 --- a/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart +++ b/lib/presentation/Screens/Bottom Navigation Pages/UAE_Numbers/uae_numbers.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_svg/svg.dart'; import 'package:go_router/go_router.dart'; import 'package:uae_stat/domain/use_cases/language.dart'; import 'package:uae_stat/infrastructure/services/img_asset_paths/icons/misc_icon_asset_path.dart'; @@ -197,11 +198,13 @@ class _UaenumberWidgetState extends ConsumerState { decoration: InputDecoration( hintText: "Search", hintStyle: TextStyle(color: Color(0xFF898C81)), - - prefixIcon: Image( - image: ExactAssetImage(MiscIconAssetPath.search), - width: 24, - height: 24, + prefixIconConstraints: BoxConstraints(maxWidth: 42, maxHeight: 42), + prefixIcon: Container( + padding: EdgeInsets.only(right: 5), + child: SvgPicture.asset( + MiscIconAssetPath.Search, + semanticsLabel: 'Search', + ), ), // prefixIcon: Image.asset( diff --git a/lib/presentation/Screens/auth_verification/create_new_pw.dart b/lib/presentation/Screens/auth_verification/create_new_pw.dart index 74e345cf..8b279121 100644 --- a/lib/presentation/Screens/auth_verification/create_new_pw.dart +++ b/lib/presentation/Screens/auth_verification/create_new_pw.dart @@ -242,11 +242,12 @@ class _CreateNewPwState extends ConsumerState { pathColorWhenOn: Colors.grey.shade300, pathColorWhenOff: Colors.grey.shade300, onTap: () { - + print('has validated $hasValidated'); final formState = _formKey.currentState; ref.read(localeProvider.notifier).toggleLocale(); Future.delayed(Duration(milliseconds: 100), () { if (hasValidated && formState?.validate() == false) { + print('has validated $hasValidated'); formState?.validate(); } }); @@ -583,7 +584,7 @@ class _CreateNewPwState extends ConsumerState { child: ElevatedButton( onPressed: () async { setState(() { - + hasValidated=true; }); if ((_formKey.currentState?.validate() ?? false)) { await updatePassword( diff --git a/lib/presentation/Screens/auth_verification/registration.dart b/lib/presentation/Screens/auth_verification/registration.dart index 4eaccccc..a3528dbb 100644 --- a/lib/presentation/Screens/auth_verification/registration.dart +++ b/lib/presentation/Screens/auth_verification/registration.dart @@ -216,10 +216,12 @@ class _RegisterScreenState extends ConsumerState { } Future _registerUser() async { + setState(() { + hasValidated = true; + }); if (_formKey.currentState?.validate() ?? false) { if (isChecked) { setState(() { - hasValidated = true; isRegistering = true; // Disable the button }); try { @@ -1111,11 +1113,11 @@ class _RegisterScreenState extends ConsumerState { ?.languageCode == 'ar' ? 0 - : 30.0, + : 40.0, right: registerLocale ?.languageCode == 'ar' - ? 40 + ? 45 : 0.0,), child: Text( context.translate('Required', 'مطلوب'), diff --git a/lib/presentation/Screens/charts/screens/chart_screen.dart b/lib/presentation/Screens/charts/screens/chart_screen.dart index dacfc19f..bc15c581 100644 --- a/lib/presentation/Screens/charts/screens/chart_screen.dart +++ b/lib/presentation/Screens/charts/screens/chart_screen.dart @@ -1459,11 +1459,12 @@ class _ChartScreen1State extends ConsumerState { children: [ Row( children: [ - Image.asset( - UaeNumbersAssetPath.filterUae, - color: Color(0xFF8E8E8E), // Outline color - width: 24, // Slightly larger - height: 24, + SvgPicture.asset( + UaeNumbersAssetPath.filterCharts, + semanticsLabel: 'Filter', + colorFilter:ColorFilter.mode(Color(0xFF8E8E8E),BlendMode.srcIn), + width: 25, + height: 25, ), SizedBox(width: 8), Text( @@ -2172,12 +2173,11 @@ class _ChartScreen1State extends ConsumerState { ), ), SizedBox(width: 10), - Image.asset( - UaeNumbersAssetPath.filterUae, - color: Colors - .white, // Set color to white - width: 21, - height: 21, + SvgPicture.asset( + UaeNumbersAssetPath.filterCharts, + semanticsLabel: 'Filter', + width: 24, + height: 24, ), ], ), diff --git a/lib/presentation/Screens/profilepage.dart b/lib/presentation/Screens/profilepage.dart index 3a1b8a7e..d52a6f55 100644 --- a/lib/presentation/Screens/profilepage.dart +++ b/lib/presentation/Screens/profilepage.dart @@ -456,6 +456,7 @@ class _ProfileScreenState extends ConsumerState { @override Widget build(BuildContext context) { + final profileLocale = ref.watch(localeProvider); return PopScope( canPop: false, // Allow back navigation only if not login screen onPopInvokedWithResult: (didPop, result) { @@ -790,7 +791,7 @@ class _ProfileScreenState extends ConsumerState { ), borderRadius: BorderRadius.circular(8), ), - labelText: 'Select', + labelText: context.translate('Select',' اختيار') ), icon: Icon(Icons.keyboard_arrow_down_sharp, color: @@ -916,7 +917,11 @@ class _ProfileScreenState extends ConsumerState { mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( - padding: const EdgeInsets.only(left: 10.0), + padding: EdgeInsets.only(left: 10.0, right: profileLocale + ?.languageCode == + 'ar' + ? 15 + : 0.0,), child: Text( context.translate('Required', 'مطلوب'), style: TextStyle( diff --git a/lib/presentation/components/themed_text_field.dart b/lib/presentation/components/themed_text_field.dart index 82b58ce6..843a7876 100644 --- a/lib/presentation/components/themed_text_field.dart +++ b/lib/presentation/components/themed_text_field.dart @@ -45,7 +45,7 @@ class ThemedFormField extends HookWidget { final inputDecoration = InputDecoration( filled: true, fillColor: Colors.white, - contentPadding: const EdgeInsets.symmetric(vertical: 14), + contentPadding: const EdgeInsets.symmetric(vertical: 14, horizontal: 15), border: OutlineInputBorder( borderRadius: BorderRadius.circular(10), borderSide: BorderSide( diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart index f4226a55..fd2cc5ab 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/bookmark.dart @@ -289,9 +289,9 @@ class _BookMarkState extends ConsumerState { final List> tabs = [ { 'title':AppLocalizations.of(context)!.all_bookmarks, 'color': Colors.black}, - { 'title': AppLocalizations.of(context)!.economy_title, 'color': Colors.black}, - { 'title':AppLocalizations.of(context)!.social_title, 'color': Colors.black}, - { 'title': AppLocalizations.of(context)!.environment_title, 'color': Colors.black}, + { 'title': AppLocalizations.of(context)!.economy_title, 'color': Color(0xFF90B0D5)}, + { 'title':AppLocalizations.of(context)!.social_title, 'color': Color(0xFFAA8E83)}, + { 'title': AppLocalizations.of(context)!.environment_title, 'color': Color(0xFF7DAFBC)}, ]; ref.listen(localeProvider, (previous, next) { @@ -408,19 +408,47 @@ class _BookMarkState extends ConsumerState { ) : Padding( padding: const EdgeInsets.all(8.0), - child: GridView.builder( - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 2, - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - mainAxisExtent: 100, + child: Column( + children: [ + Container( + decoration: BoxDecoration( + color: tabs[selectedTabIndex]['color'], + borderRadius: BorderRadius.all(Radius.circular(35)) + ), + padding: const EdgeInsets.only( + left: 16, bottom: 5, top: 5, right: 10), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + tabs[selectedTabIndex]['title'], + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.w600, + fontSize: 20, + ), ), - itemCount: filteredBookmarks.length, - itemBuilder: (context, index) { - return _buildBox(filteredBookmarks[index], context); - }, + ], + ), + ), + SizedBox(height: 20,), + Expanded( + child: GridView.builder( + gridDelegate: + const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + mainAxisExtent: 100, ), + itemCount: filteredBookmarks.length, + itemBuilder: (context, index) { + return _buildBox(filteredBookmarks[index], context); + }, + ), + ), + ], + ), ), ), ], @@ -661,7 +689,7 @@ class TabBarHeader extends StatelessWidget { foregroundColor: MaterialStateProperty.resolveWith((states) { return selectedIndex == index - ? Colors.black + ? entry.value['color'] : Colors.grey[700]; }), ), diff --git a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart index 164957bb..30d826c8 100644 --- a/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart +++ b/lib/presentation/routes/drawer_routes/Drawer Items/manage_users.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; import 'package:go_router/go_router.dart'; import 'package:intl/intl.dart'; import 'package:pocketbase/pocketbase.dart'; @@ -342,11 +343,14 @@ class _ManageUserRouterState extends State { decoration: InputDecoration( hintText: "Search", hintStyle: TextStyle(color: Color(0xFF898C81)), - prefixIcon: Image( - image: ExactAssetImage(MiscIconAssetPath.search), - width: 24, - height: 24, - color: Color(0xFFAA8E83)), + prefixIconConstraints: BoxConstraints(maxWidth: 42, maxHeight: 42), + prefixIcon: Container( + padding: EdgeInsets.only(right: 5), + child: SvgPicture.asset( + MiscIconAssetPath.Search, + semanticsLabel: 'Search', + ), + ), // prefixIcon: Image.asset( // MiscIconAssetPath.search,