From 8923bb42ad60f691498e8f4b936ed40454753c53 Mon Sep 17 00:00:00 2001 From: hieubt Date: Sat, 11 Nov 2023 00:37:13 +0700 Subject: [PATCH] TF-1709 Add select sort to advance search view (cherry picked from commit 6b1b52909ef30d5618bb5bc9557fe2f17770a0b3) --- .../model/search/advanced_search_filter.dart | 5 +++++ .../advanced_search_input_form.dart | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/lib/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart b/lib/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart index d6d4b1b84..88383c4ca 100644 --- a/lib/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart +++ b/lib/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.dart @@ -10,6 +10,7 @@ enum AdvancedSearchFilterField { notKeyword, mailBox, date, + sortBy, hasAttachment; String getTitle(BuildContext context) { @@ -28,6 +29,8 @@ enum AdvancedSearchFilterField { return AppLocalizations.of(context).folder; case AdvancedSearchFilterField.date: return AppLocalizations.of(context).date; + case AdvancedSearchFilterField.sortBy: + return AppLocalizations.of(context).sortBy; case AdvancedSearchFilterField.hasAttachment: return AppLocalizations.of(context).hasAttachment; } @@ -47,6 +50,8 @@ enum AdvancedSearchFilterField { return AppLocalizations.of(context).allFolders; case AdvancedSearchFilterField.date: return AppLocalizations.of(context).allTime; + case AdvancedSearchFilterField.sortBy: + return AppLocalizations.of(context).mostRecent; case AdvancedSearchFilterField.hasAttachment: return AppLocalizations.of(context).hasAttachment; } diff --git a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart index 6a897a12c..5e7c243d5 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_input_form.dart @@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/styles/advanced_search_input_form_style.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_form_bottom_view.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/date_drop_down_button.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/sort_by_drop_down_button.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/advanced_search/text_field_autocomplete_email_address_web.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -109,6 +110,10 @@ class AdvancedSearchInputForm extends GetWidget iconPadding: EdgeInsets.zero, onTap: () => controller.selectDateRange(context)), ]), + _buildFilterField( + context: context, + advancedSearchFilterField: AdvancedSearchFilterField.sortBy + ), AdvancedSearchFilterFormBottomView(focusManager: controller.focusManager) ], ), @@ -172,6 +177,12 @@ class AdvancedSearchInputForm extends GetWidget receiveTimeSelected: controller.dateFilterSelectedFormAdvancedSearch.value, onReceiveTimeSelected: (receiveTime) => controller.updateReceiveDateSearchFilter(context, receiveTime), )) + else if (advancedSearchFilterField == AdvancedSearchFilterField.sortBy) + Obx(() => SortByDropDownButton( + imagePaths: _imagePaths, + sortOrderSelected: controller.searchController.sortOrderFiltered.value, + onSortOrderSelected: controller.updateSortOrder, + )) else _buildTextField( isSelectFormList: isSelectFormList, @@ -229,6 +240,12 @@ class AdvancedSearchInputForm extends GetWidget receiveTimeSelected: controller.dateFilterSelectedFormAdvancedSearch.value, onReceiveTimeSelected: (receiveTime) => controller.updateReceiveDateSearchFilter(context, receiveTime), )); + case AdvancedSearchFilterField.sortBy: + return Obx(() => SortByDropDownButton( + imagePaths: _imagePaths, + sortOrderSelected: controller.searchController.sortOrderFiltered.value, + onSortOrderSelected: controller.updateSortOrder, + )); default: return _buildTextField( isSelectFormList: isSelectFormList,