From 19b6de7ef85d178a9f00e7c2c2048054ba8a2d26 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 11 May 2026 09:51:11 +0300 Subject: [PATCH 1/3] date picker and time picker color scheme changes --- .../asset_retired/verify_asset_detail.dart | 128 +++++++++++++++++- .../widgets/date_and_time/date_picker.dart | 126 ++++++++++++++--- 2 files changed, 234 insertions(+), 20 deletions(-) diff --git a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart index a23f67a2..ad1ac5ae 100644 --- a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart @@ -144,6 +144,69 @@ class _VerifyAssetDetailsState extends State with TickerProv showTimePicker( context: context, initialTime: TimeOfDay.now(), + builder: (BuildContext context, Widget? child) { + return Theme( + data: Theme.of(context).copyWith( + timePickerTheme: TimePickerThemeData( + backgroundColor: AppColor.bottomSheetColor(context), + hourMinuteShape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: BorderSide(color: AppColor.borderColor(context)), + ), + dayPeriodBorderSide: BorderSide(color: AppColor.borderColor(context)), + dayPeriodColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; + }), + dayPeriodTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + dialHandColor: AppColor.primary10, + dialBackgroundColor: AppColor.scaffoldBackground(context), + hourMinuteColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return AppColor.scaffoldBackground(context); + }), + hourMinuteTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + dialTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + entryModeIconColor: AppColor.primary10, + helpTextStyle: TextStyle( + color: AppColor.textStyleColor(context), + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: AppColor.primary10, + textStyle: const TextStyle( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + ), + ), + child: child!, + ); + }, ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { @@ -261,6 +324,69 @@ class _VerifyAssetDetailsState extends State with TickerProv showTimePicker( context: context, initialTime: TimeOfDay.now(), + builder: (BuildContext context, Widget? child) { + return Theme( + data: Theme.of(context).copyWith( + timePickerTheme: TimePickerThemeData( + backgroundColor: AppColor.bottomSheetColor(context), + hourMinuteShape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: BorderSide(color: AppColor.borderColor(context)), + ), + dayPeriodBorderSide: BorderSide(color: AppColor.borderColor(context)), + dayPeriodColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; + }), + dayPeriodTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + dialHandColor: AppColor.primary10, + dialBackgroundColor: AppColor.scaffoldBackground(context), + hourMinuteColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return AppColor.scaffoldBackground(context); + }), + hourMinuteTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + dialTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + entryModeIconColor: AppColor.primary10, + helpTextStyle: TextStyle( + color: AppColor.textStyleColor(context), + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: AppColor.primary10, + textStyle: const TextStyle( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + ), + ), + child: child!, + ); + }, ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { @@ -405,7 +531,7 @@ class _VerifyAssetDetailsState extends State with TickerProv }), ), 8.width, - Text(element.name ?? '', style: AppTextStyles.tinyFont.copyWith(color: AppColor.neutral120)), + Text(element.name ?? '', style: AppTextStyles.tinyFont.copyWith(color: AppColor.textColor(context))), ], ) ], diff --git a/lib/views/widgets/date_and_time/date_picker.dart b/lib/views/widgets/date_and_time/date_picker.dart index 790565fd..58fab5d6 100644 --- a/lib/views/widgets/date_and_time/date_picker.dart +++ b/lib/views/widgets/date_and_time/date_picker.dart @@ -87,36 +87,124 @@ class ADatePicker extends StatelessWidget { lastDate: to ?? DateTime.now(), builder: (BuildContext context, Widget? child) { final ThemeData currentTheme = Theme.of(context); + final bool isDark = context.isDark; + return Theme( data: currentTheme.copyWith( datePickerTheme: DatePickerThemeData( - headerBackgroundColor: AppColor.scaffoldBackground(context), + // Header styling + headerBackgroundColor: AppColor.primary10, headerForegroundColor: Colors.white, + + // Background backgroundColor: AppColor.bottomSheetColor(context), - dayForegroundColor: MaterialStateColor.resolveWith((states) { - if (states.contains(MaterialState.selected)) return Colors.white; - if (states.contains(MaterialState.disabled)) return Colors.grey.withOpacity(0.6); - return currentTheme.colorScheme.onSurface; + + // Surface tint removal for clean look + surfaceTintColor: Colors.transparent, + + // Day cell styling + dayForegroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + if (states.contains(WidgetState.disabled)) { + return isDark ? AppColor.neutral10.withOpacity(0.3) : AppColor.neutral20.withOpacity(0.4); + } + return AppColor.textStyleColor(context); + }), + + dayBackgroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; + }), + + // Today's date styling + todayForegroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.primary10; + }), + + todayBackgroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; }), - dayBackgroundColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - yearForegroundColor: MaterialStateColor.resolveWith((states) { - if (states.contains(MaterialState.selected)) return Colors.white; - if (states.contains(MaterialState.disabled)) return Colors.grey.withOpacity(0.6); - return currentTheme.colorScheme.onSurface; + + todayBorder: BorderSide(color: AppColor.primary10, width: 1), + + // Year selector styling + yearForegroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + if (states.contains(WidgetState.disabled)) { + return isDark ? AppColor.neutral10.withOpacity(0.3) : AppColor.neutral20.withOpacity(0.4); + } + return AppColor.textStyleColor(context); + }), + + yearBackgroundColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; }), - yearBackgroundColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - // todayForegroundColor: MaterialStateColor.resolveWith((states) => AppColor.primary10), - // todayBorder: BorderSide(color: AppColor.primary10.withOpacity(0.7)), - dividerColor: Colors.grey.withOpacity(0.2), - shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), - inputDecorationTheme: const InputDecorationTheme( - focusedBorder: UnderlineInputBorder(borderSide: BorderSide(color: AppColor.primary10, width: 2)), + + // Weekday labels + weekdayStyle: TextStyle( + color: AppColor.labelTextStyleColor(context), + fontWeight: FontWeight.w600, + ), + + // Day style + dayStyle: TextStyle( + color: AppColor.textStyleColor(context), + ), + + // Year style + yearStyle: TextStyle( + color: AppColor.textStyleColor(context), + ), + + // Divider + dividerColor: AppColor.borderColor(context), + + // Shape + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + + // Input decoration for text field mode + inputDecorationTheme: InputDecorationTheme( + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide(color: AppColor.primary10, width: 2), + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide(color: AppColor.borderColor(context)), + ), ), ), + + // Button styling (Cancel/OK buttons) textButtonTheme: TextButtonThemeData( - style: TextButton.styleFrom(foregroundColor: AppColor.loadingColor(context)), + style: TextButton.styleFrom( + foregroundColor: AppColor.primary10, + textStyle: const TextStyle( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + ), + + // Icon theme for navigation arrows + iconTheme: IconThemeData( + color: Colors.white, ), - iconTheme: IconThemeData(color: AppColor.primary10.withOpacity(0.7)), ), child: child!, ); From c5532539179ef091a828336be4bc536e90e1d4f5 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 11 May 2026 10:08:20 +0300 Subject: [PATCH 2/3] time picker unified method added. --- .../delivery_inspection_form_view.dart | 38 +---- ...ate_end_user_cost_center_details_view.dart | 91 +++++------- .../update_child_asset_view.dart | 21 +-- .../update_parent_asset_view.dart | 26 +--- .../service_request_bottomsheet.dart | 7 +- .../asset_retired/verify_asset_detail.dart | 131 +----------------- .../components/assistant_employee_card.dart | 5 +- .../components/assistant_employee_list.dart | 5 +- .../components/external_request.dart | 5 +- .../create_incident_request_page.dart | 21 +-- .../update_delivery_notes_page.dart | 3 +- .../update_medical_gas_inspection_page.dart | 3 +- .../update_ppm/ppm_external_details_form.dart | 5 +- .../ppm_wo/update_ppm/wo_info_form.dart | 3 +- .../widgets/date_and_time/time_picker.dart | 117 +++++++++++++++- 15 files changed, 181 insertions(+), 300 deletions(-) diff --git a/lib/modules/asset_delivery_module/pages/delivery_inspection/delivery_inspection_form_view.dart b/lib/modules/asset_delivery_module/pages/delivery_inspection/delivery_inspection_form_view.dart index be2fa195..39e097b4 100644 --- a/lib/modules/asset_delivery_module/pages/delivery_inspection/delivery_inspection_form_view.dart +++ b/lib/modules/asset_delivery_module/pages/delivery_inspection/delivery_inspection_form_view.dart @@ -28,6 +28,7 @@ import 'package:test_sa/modules/cm_module/views/components/action_button/footer_ import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/new_views/swipe_module/dialoge/acknowledge_work_dialog.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; @@ -296,10 +297,9 @@ class _DeliveryInspectionFormViewState extends State from: DateTime(DateTime.now().year, 1, 1), formatDateWithTime: true, onDatePicker: (selectedDate) async { - final selectedTime = await showTimePicker( + final selectedTime = await showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: _timePickerThemeBuilder, ); if (selectedTime == null) return; @@ -334,10 +334,9 @@ class _DeliveryInspectionFormViewState extends State return; } - final selectedTime = await showTimePicker( + final selectedTime = await showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: _timePickerThemeBuilder, ); if (selectedTime == null) return; @@ -422,37 +421,6 @@ class _DeliveryInspectionFormViewState extends State return '${hours.toStringAsFixed(2)} hours'; } - Widget _timePickerThemeBuilder(BuildContext context, Widget? child) { - final ThemeData currentTheme = Theme.of(context); - - return Theme( - data: currentTheme.copyWith( - timePickerTheme: TimePickerThemeData( - dialHandColor: AppColor.primary10, - dialBackgroundColor: Colors.grey.withOpacity(0.1), - hourMinuteColor: MaterialStateColor.resolveWith( - (states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.grey.withOpacity(0.1), - ), - dayPeriodColor: MaterialStateColor.resolveWith( - (states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent, - ), - dayPeriodTextColor: MaterialStateColor.resolveWith( - (states) => states.contains(MaterialState.selected) ? Colors.white : AppColor.primary10, - ), - dayPeriodBorderSide: BorderSide( - color: Colors.grey.withOpacity(0.2), - ), - entryModeIconColor: AppColor.primary10, - ), - textButtonTheme: TextButtonThemeData( - style: TextButton.styleFrom( - foregroundColor: AppColor.primary10, - ), - ), - ), - child: child!, - ); - } Widget inspectionDetails() { return Column( diff --git a/lib/modules/asset_delivery_module/pages/end_user_acceptance/update_end_user_cost_center_details_view.dart b/lib/modules/asset_delivery_module/pages/end_user_acceptance/update_end_user_cost_center_details_view.dart index 15bbc980..ba82f75f 100644 --- a/lib/modules/asset_delivery_module/pages/end_user_acceptance/update_end_user_cost_center_details_view.dart +++ b/lib/modules/asset_delivery_module/pages/end_user_acceptance/update_end_user_cost_center_details_view.dart @@ -20,6 +20,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart'; import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/e_signature/e_signature.dart'; import '../../../../new_views/common_widgets/app_filled_button.dart'; import '../../../../new_views/common_widgets/default_app_bar.dart'; @@ -95,49 +96,45 @@ class _UpdateEndUserCostCenterDetailsViewState extends State states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.grey.withOpacity(0.1)), - dayPeriodColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - dayPeriodTextColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? Colors.white : AppColor.primary10), - dayPeriodBorderSide: BorderSide(color: Colors.grey.withOpacity(0.2)), - entryModeIconColor: AppColor.primary10, - ), - textButtonTheme: TextButtonThemeData(style: TextButton.styleFrom(foregroundColor: AppColor.primary10)), - ), - child: child!, - ); - }, ).then((selectedTime) { if (selectedTime != null) { model.acceptanceDate = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); diff --git a/lib/modules/asset_delivery_module/pages/technical_inpection/update_child_asset_view.dart b/lib/modules/asset_delivery_module/pages/technical_inpection/update_child_asset_view.dart index ca32ac11..47b77cef 100644 --- a/lib/modules/asset_delivery_module/pages/technical_inpection/update_child_asset_view.dart +++ b/lib/modules/asset_delivery_module/pages/technical_inpection/update_child_asset_view.dart @@ -21,6 +21,7 @@ import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart import 'package:test_sa/providers/gas_request_providers/site_provider.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import '../../../../models/new_models/department.dart'; import '../../../../new_views/common_widgets/app_filled_button.dart'; import '../../../../new_views/common_widgets/default_app_bar.dart'; @@ -322,27 +323,9 @@ class _UpdateChildAssetViewState extends State { // from: widget.pickerFromDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: (BuildContext context, Widget? child) { - final ThemeData currentTheme = Theme.of(context); - return Theme( - data: currentTheme.copyWith( - timePickerTheme: TimePickerThemeData( - dialHandColor: AppColor.primary10, - dialBackgroundColor: Colors.grey.withOpacity(0.1), - hourMinuteColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.grey.withOpacity(0.1)), - dayPeriodColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - dayPeriodTextColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? Colors.white : AppColor.primary10), - dayPeriodBorderSide: BorderSide(color: Colors.grey.withOpacity(0.2)), - entryModeIconColor: AppColor.primary10, - ), - textButtonTheme: TextButtonThemeData(style: TextButton.styleFrom(foregroundColor: AppColor.primary10)), - ), - child: child!, - ); - }, ).then((selectedTime) { if (selectedTime != null) { model.installationDate = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); diff --git a/lib/modules/asset_delivery_module/pages/technical_inpection/update_parent_asset_view.dart b/lib/modules/asset_delivery_module/pages/technical_inpection/update_parent_asset_view.dart index ecd22117..22ee28f2 100644 --- a/lib/modules/asset_delivery_module/pages/technical_inpection/update_parent_asset_view.dart +++ b/lib/modules/asset_delivery_module/pages/technical_inpection/update_parent_asset_view.dart @@ -24,6 +24,7 @@ import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart import 'package:test_sa/providers/gas_request_providers/site_provider.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import '../../../../models/new_models/department.dart'; import '../../../../new_views/common_widgets/app_filled_button.dart'; import '../../../../new_views/common_widgets/default_app_bar.dart'; @@ -102,10 +103,7 @@ class _UpdateParentAssetViewState extends State { Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, - appBar: DefaultAppBar( - title: 'Parent Details'.addTranslation, - titleStyle: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), - ), + appBar: DefaultAppBar(title: 'Parent Details'.addTranslation), body: Form( key: _formKey, child: Consumer(builder: (context, provider, child) { @@ -386,27 +384,9 @@ class _UpdateParentAssetViewState extends State { from: DateTime(DateTime.now().year, 1, 1), formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: (BuildContext context, Widget? child) { - final ThemeData currentTheme = Theme.of(context); - return Theme( - data: currentTheme.copyWith( - timePickerTheme: TimePickerThemeData( - dialHandColor: AppColor.primary10, - dialBackgroundColor: Colors.grey.withOpacity(0.1), - hourMinuteColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.grey.withOpacity(0.1)), - dayPeriodColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - dayPeriodTextColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? Colors.white : AppColor.primary10), - dayPeriodBorderSide: BorderSide(color: Colors.grey.withOpacity(0.2)), - entryModeIconColor: AppColor.primary10, - ), - textButtonTheme: TextButtonThemeData(style: TextButton.styleFrom(foregroundColor: AppColor.primary10)), - ), - child: child!, - ); - }, ).then((selectedTime) { if (selectedTime != null) { model.installationDate = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); diff --git a/lib/modules/cm_module/views/components/bottom_sheets/service_request_bottomsheet.dart b/lib/modules/cm_module/views/components/bottom_sheets/service_request_bottomsheet.dart index f149de8a..d15e2a81 100644 --- a/lib/modules/cm_module/views/components/bottom_sheets/service_request_bottomsheet.dart +++ b/lib/modules/cm_module/views/components/bottom_sheets/service_request_bottomsheet.dart @@ -29,6 +29,7 @@ import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; import 'package:test_sa/providers/work_order/need_visit_reminder_time_provider.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/e_signature/e_signature.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; @@ -71,7 +72,7 @@ class ServiceRequestBottomSheet { date: requestDetailProvider.fixRemotelyHelperModel?.startDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -110,7 +111,7 @@ class ServiceRequestBottomSheet { date: requestDetailProvider.fixRemotelyHelperModel?.endDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -248,7 +249,7 @@ class ServiceRequestBottomSheet { date: requestDetailProvider.needVisitHelperModel?.visitDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart index ad1ac5ae..bb823892 100644 --- a/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/modules/cm_module/views/forms/asset_retired/verify_asset_detail.dart @@ -27,6 +27,7 @@ import 'package:test_sa/providers/work_order/fault_description_provider.dart'; import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/providers/work_order/wo_frame_provider.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/equipment/pick_asset.dart'; class VerifyAssetDetails extends StatefulWidget { @@ -141,72 +142,9 @@ class _VerifyAssetDetailsState extends State with TickerProv date: DateTime.tryParse(updateAssetModel?.returnToService ?? ""), formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: (BuildContext context, Widget? child) { - return Theme( - data: Theme.of(context).copyWith( - timePickerTheme: TimePickerThemeData( - backgroundColor: AppColor.bottomSheetColor(context), - hourMinuteShape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), - side: BorderSide(color: AppColor.borderColor(context)), - ), - dayPeriodBorderSide: BorderSide(color: AppColor.borderColor(context)), - dayPeriodColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return AppColor.primary10; - } - return Colors.transparent; - }), - dayPeriodTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - dialHandColor: AppColor.primary10, - dialBackgroundColor: AppColor.scaffoldBackground(context), - hourMinuteColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return AppColor.primary10; - } - return AppColor.scaffoldBackground(context); - }), - hourMinuteTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - dialTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - entryModeIconColor: AppColor.primary10, - helpTextStyle: TextStyle( - color: AppColor.textStyleColor(context), - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16), - ), - ), - textButtonTheme: TextButtonThemeData( - style: TextButton.styleFrom( - foregroundColor: AppColor.primary10, - textStyle: const TextStyle( - fontWeight: FontWeight.w600, - fontSize: 14, - ), - ), - ), - ), - child: child!, - ); - }, ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { @@ -321,72 +259,9 @@ class _VerifyAssetDetailsState extends State with TickerProv date: DateTime.tryParse(updateAssetModel?.edd ?? ""), formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: (BuildContext context, Widget? child) { - return Theme( - data: Theme.of(context).copyWith( - timePickerTheme: TimePickerThemeData( - backgroundColor: AppColor.bottomSheetColor(context), - hourMinuteShape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(12), - side: BorderSide(color: AppColor.borderColor(context)), - ), - dayPeriodBorderSide: BorderSide(color: AppColor.borderColor(context)), - dayPeriodColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return AppColor.primary10; - } - return Colors.transparent; - }), - dayPeriodTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - dialHandColor: AppColor.primary10, - dialBackgroundColor: AppColor.scaffoldBackground(context), - hourMinuteColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return AppColor.primary10; - } - return AppColor.scaffoldBackground(context); - }), - hourMinuteTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - dialTextColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) { - return Colors.white; - } - return AppColor.textStyleColor(context); - }), - entryModeIconColor: AppColor.primary10, - helpTextStyle: TextStyle( - color: AppColor.textStyleColor(context), - ), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(16), - ), - ), - textButtonTheme: TextButtonThemeData( - style: TextButton.styleFrom( - foregroundColor: AppColor.primary10, - textStyle: const TextStyle( - fontWeight: FontWeight.w600, - fontSize: 14, - ), - ), - ), - ), - child: child!, - ); - }, ).then((selectedTime) { // Handle the selected date and time here. if (selectedTime != null) { diff --git a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart index 78e1dbe0..8da1fab7 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_card.dart @@ -1,3 +1,4 @@ +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; @@ -111,7 +112,7 @@ class _AssistantEmployeeCardState extends State { date: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -153,7 +154,7 @@ class _AssistantEmployeeCardState extends State { formatDateWithTime: true, to: DateTime.now(), onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_list.dart b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_list.dart index 879f7e49..d6f1c2db 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_list.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/components/assistant_employee_list.dart @@ -1,3 +1,4 @@ +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; @@ -175,7 +176,7 @@ class EmployeeCard extends StatelessWidget { formatDateWithTime: true, from: requestedDate, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -220,7 +221,7 @@ class EmployeeCard extends StatelessWidget { formatDateWithTime: true, from: requestedDate, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart b/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart index 98c26be8..b92cb7e4 100644 --- a/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart +++ b/lib/modules/cm_module/views/forms/maintenance_request/components/external_request.dart @@ -1,3 +1,4 @@ +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; @@ -141,7 +142,7 @@ class _ExternalMaintenanceRequestState extends State from: requestDetailProvider.currentWorkOrder?.data?.requestedDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -185,7 +186,7 @@ class _ExternalMaintenanceRequestState extends State date: requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/incident_module/create_incident_request_page.dart b/lib/modules/incident_module/create_incident_request_page.dart index 7a96f8e7..dc33c3e2 100644 --- a/lib/modules/incident_module/create_incident_request_page.dart +++ b/lib/modules/incident_module/create_incident_request_page.dart @@ -28,6 +28,7 @@ import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/providers/gas_request_providers/site_provider.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/providers/lookups/yes_no_lookup_provider.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; @@ -637,27 +638,9 @@ class _CreateIncidentRequestPageState extends State { // enable: widget.enabled ? _tempPickerTimer == null : false, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), - builder: (BuildContext context, Widget? child) { - final ThemeData currentTheme = Theme.of(context); - return Theme( - data: currentTheme.copyWith( - timePickerTheme: TimePickerThemeData( - dialHandColor: AppColor.primary10, - dialBackgroundColor: Colors.grey.withOpacity(0.1), - hourMinuteColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.grey.withOpacity(0.1)), - dayPeriodColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? AppColor.primary10 : Colors.transparent), - dayPeriodTextColor: MaterialStateColor.resolveWith((states) => states.contains(MaterialState.selected) ? Colors.white : AppColor.primary10), - dayPeriodBorderSide: BorderSide(color: Colors.grey.withOpacity(0.2)), - entryModeIconColor: AppColor.primary10, - ), - textButtonTheme: TextButtonThemeData(style: TextButton.styleFrom(foregroundColor: AppColor.primary10)), - ), - child: child!, - ); - }, ).then((selectedTime) { if (selectedTime != null) { occurrenceDate = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute); diff --git a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart index 45f2e604..86cebf54 100644 --- a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart +++ b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart @@ -18,6 +18,7 @@ import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/multiple_item_drop_down_menu.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; class UpdateDeliveryNotes extends StatefulWidget { @@ -98,7 +99,7 @@ class _UpdateDeliveryNotesState extends State { date: formModel.deliveredDate, formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/medical_gas_inspection/update_medical_gas_inspection_page.dart b/lib/modules/medical_gas_inspection/update_medical_gas_inspection_page.dart index dc338fb8..7175b7e1 100644 --- a/lib/modules/medical_gas_inspection/update_medical_gas_inspection_page.dart +++ b/lib/modules/medical_gas_inspection/update_medical_gas_inspection_page.dart @@ -27,6 +27,7 @@ import 'package:test_sa/new_views/common_widgets/multiple_item_drop_down_menu.da import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; @@ -138,7 +139,7 @@ class _UpdateMedicalGasInspectionPageState extends State? models; @@ -222,7 +223,7 @@ class _ExternalDetailItemState extends State { formatDateWithTime: true, from: DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? ''), onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { @@ -266,7 +267,7 @@ class _ExternalDetailItemState extends State { formatDateWithTime: true, from: DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? ''), onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart b/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart index 4173f823..86a57d13 100644 --- a/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart +++ b/lib/modules/pm_module/ppm_wo/update_ppm/wo_info_form.dart @@ -31,6 +31,7 @@ import 'package:test_sa/providers/ppm_service_provider.dart'; import 'package:test_sa/providers/ppm_task_status_provider.dart'; import 'package:test_sa/views/widgets/bottom_sheets/asset_detail_bottom_sheet.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +import 'package:test_sa/views/widgets/date_and_time/time_picker.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/timer/app_timer.dart'; @@ -220,7 +221,7 @@ class _WoInfoFormState extends State { from: DateTime.tryParse(widget.planPreventiveVisit.creationDate ?? ''), formatDateWithTime: true, onDatePicker: (selectedDate) { - showTimePicker( + showThemedTimePicker( context: context, initialTime: TimeOfDay.now(), ).then((selectedTime) { diff --git a/lib/views/widgets/date_and_time/time_picker.dart b/lib/views/widgets/date_and_time/time_picker.dart index dac9a94a..483ce043 100644 --- a/lib/views/widgets/date_and_time/time_picker.dart +++ b/lib/views/widgets/date_and_time/time_picker.dart @@ -5,6 +5,114 @@ import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/new_views/app_style/app_color.dart'; +Future showThemedTimePicker({ + required BuildContext context, + required TimeOfDay initialTime, + String? helpText, + String? cancelText, + String? confirmText, + TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial, +}) async { + return await showTimePicker( + context: context, + initialTime: initialTime, + helpText: helpText, + cancelText: cancelText, + confirmText: confirmText, + initialEntryMode: initialEntryMode, + builder: (BuildContext context, Widget? child) { + return Theme( + data: Theme.of(context).copyWith( + timePickerTheme: TimePickerThemeData( + // Background color + backgroundColor: AppColor.bottomSheetColor(context), + + // Hour/Minute input boxes styling + hourMinuteShape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: BorderSide(color: AppColor.borderColor(context)), + ), + + // AM/PM selector border + dayPeriodBorderSide: BorderSide(color: AppColor.borderColor(context)), + + // AM/PM selector background color + dayPeriodColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return Colors.transparent; + }), + + // AM/PM selector text color + dayPeriodTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + + // Clock dial hand color + dialHandColor: AppColor.primary10, + + // Clock dial background + dialBackgroundColor: AppColor.scaffoldBackground(context), + + // Hour/Minute box background color + hourMinuteColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; + } + return AppColor.scaffoldBackground(context); + }), + + // Hour/Minute box text color + hourMinuteTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + + // Clock dial numbers text color + dialTextColor: WidgetStateColor.resolveWith((states) { + if (states.contains(WidgetState.selected)) { + return Colors.white; + } + return AppColor.textStyleColor(context); + }), + + // Entry mode switch icon color + entryModeIconColor: AppColor.primary10, + + // Help text styling + helpTextStyle: TextStyle( + color: AppColor.textStyleColor(context), + ), + + // Dialog shape + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + + // Action buttons (Cancel/OK) styling + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: AppColor.primary10, + textStyle: const TextStyle( + fontWeight: FontWeight.w600, + fontSize: 14, + ), + ), + ), + ), + child: child!, + ); + }, + ); +} + class ATimePicker extends StatelessWidget { final TimeOfDay? time; final String label; @@ -47,8 +155,6 @@ class ATimePicker extends StatelessWidget { padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight), child: Row( children: [ - // enable - // ? Column( crossAxisAlignment: CrossAxisAlignment.stretch, mainAxisSize: MainAxisSize.min, @@ -59,7 +165,6 @@ class ATimePicker extends StatelessWidget { .custom(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ], ).expanded, - //: label.bodyText(context).paddingOnly(top: 8, bottom: 8), enable ? 16.width : const Spacer(), withIcon ? icon != null @@ -70,10 +175,10 @@ class ATimePicker extends StatelessWidget { ), ).onPress(enable ? () async { - TimeOfDay initialTime = TimeOfDay.now(); - TimeOfDay? pickedTime = await showTimePicker( + // Use the unified themed time picker + TimeOfDay? pickedTime = await showThemedTimePicker( context: context, - initialTime: initialTime, + initialTime: time ?? TimeOfDay.now(), ); if (pickedTime != null) { From 5a2a4093cb83c56d81974e7205238ac895f274fd Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 11 May 2026 10:31:29 +0300 Subject: [PATCH 3/3] filter chips improvement. --- .../land_page/my_request/my_requests_page.dart | 7 ++++--- lib/views/widgets/equipment/my_assets_page.dart | 16 ++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/new_views/pages/land_page/my_request/my_requests_page.dart b/lib/new_views/pages/land_page/my_request/my_requests_page.dart index 6e25f3c9..596a3103 100644 --- a/lib/new_views/pages/land_page/my_request/my_requests_page.dart +++ b/lib/new_views/pages/land_page/my_request/my_requests_page.dart @@ -266,7 +266,7 @@ class _MyRequestsPageState extends State { Widget _buildActiveFiltersChips() { return Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4), decoration: BoxDecoration( color: AppColor.background(context), border: Border( @@ -275,6 +275,7 @@ class _MyRequestsPageState extends State { ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, + spacing: 4, children: [ Text( 'Active Filters', @@ -289,7 +290,7 @@ class _MyRequestsPageState extends State { height: 40.toScreenHeight, child: ListView.separated( scrollDirection: Axis.horizontal, - padding: const EdgeInsets.only(top: 8, right: 0, left: 0, bottom: 0), + padding: EdgeInsets.zero, itemBuilder: (cxt, index) => _getActiveFilterChips()[index], separatorBuilder: (cxt, index) => 8.width, itemCount: _getActiveFilterChips().length), @@ -459,7 +460,6 @@ class _MyRequestsPageState extends State { showDelete: false, )); } - return chips; } @@ -470,6 +470,7 @@ class _MyRequestsPageState extends State { backgroundColor: AppColor.backgroundTabBarColor(context), side: BorderSide(color: AppColor.border2Color(context)), label: Text(label), + visualDensity: VisualDensity.compact, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(30.0)), labelStyle: AppTextStyles.tinyFont2.copyWith(color: AppColor.labelTextStyleColor(context)), deleteIconColor: showDelete ? AppColor.icon2Color(context) : null, diff --git a/lib/views/widgets/equipment/my_assets_page.dart b/lib/views/widgets/equipment/my_assets_page.dart index 6d6ee224..80a6c432 100644 --- a/lib/views/widgets/equipment/my_assets_page.dart +++ b/lib/views/widgets/equipment/my_assets_page.dart @@ -261,7 +261,7 @@ class _MyAssetsPageState extends State { Widget _buildActiveFiltersChips() { return Container( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 4), decoration: BoxDecoration( color: AppColor.background(context), border: Border( @@ -270,13 +270,11 @@ class _MyAssetsPageState extends State { ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, + spacing: 4, children: [ Text( 'Active Filters', - style: AppTextStyles.tinyFont2.copyWith( - color: AppColor.labelTextStyleColor(context), - fontWeight: FontWeight.w600, - ), + style: AppTextStyles.tinyFont2.copyWith(color: AppColor.labelTextStyleColor(context), fontWeight: FontWeight.w600), ), Row( mainAxisSize: MainAxisSize.min, @@ -287,7 +285,7 @@ class _MyAssetsPageState extends State { height: 40.toScreenHeight, child: ListView.separated( scrollDirection: Axis.horizontal, - padding: const EdgeInsets.only(top: 8, right: 0, left: 0, bottom: 0), + padding: EdgeInsets.zero, itemBuilder: (cxt, index) => _getActiveFilterChips()[index], separatorBuilder: (cxt, index) => 8.width, itemCount: _getActiveFilterChips().length, @@ -492,13 +490,11 @@ class _MyAssetsPageState extends State { Widget _buildFilterChip({required String label, required VoidCallback onDelete}) { return Theme( - data: Theme.of(context).copyWith( - splashColor: Colors.transparent, - highlightColor: Colors.transparent, - ), + data: Theme.of(context).copyWith(splashColor: Colors.transparent, highlightColor: Colors.transparent), child: Chip( backgroundColor: AppColor.backgroundTabBarColor(context), side: BorderSide(color: AppColor.border2Color(context)), + visualDensity: VisualDensity.compact, label: Text(label), shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(30.0),