TF-3834 Set up relevance sort being the default

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-07-29 12:12:45 +07:00
committed by Dat H. Pham
parent 8bc0a9dcca
commit ec4b618a32
6 changed files with 15 additions and 11 deletions
@@ -35,7 +35,7 @@ class AdvancedFilterController extends BaseController {
final hasAttachment = false.obs;
final startDate = Rxn<DateTime>();
final endDate = Rxn<DateTime>();
final sortOrderType = EmailSortOrderType.mostRecent.obs;
final sortOrderType = EmailSortOrderType.defaultSortOrder.obs;
final selectedFolderName = Rxn<String>();
final GlobalKey<TagsEditorState> keyFromEmailTagEditor = GlobalKey<TagsEditorState>();
@@ -129,6 +129,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/refr
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
import 'package:tmail_ui_user/features/mailto/presentation/model/mailto_arguments.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/create_new_rule_filter_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_state.dart';
@@ -2149,7 +2150,7 @@ class MailboxDashBoardController extends ReloadableController
void _deleteSortOrderSearchFilter() {
searchController.updateFilterEmail(
sortOrderTypeOption: const Some(EmailSortOrderType.mostRecent));
sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder));
dispatchAction(StartSearchEmailAction());
}
@@ -43,7 +43,7 @@ enum QuickSearchFilter {
return AppLocalizations.of(context).fromMe;
case QuickSearchFilter.sortBy:
return sortOrderType?.getTitle(context)
?? AppLocalizations.of(context).mostRecent;
?? SearchEmailFilter.defaultSortOrder.getTitle(context);
case QuickSearchFilter.dateTime:
return receiveTimeType?.getTitle(
context,
@@ -138,7 +138,7 @@ enum QuickSearchFilter {
currentUserEmail?.isNotEmpty == true &&
currentUserEmail == searchFilter.from.first;
case QuickSearchFilter.sortBy:
return sortOrderType != EmailSortOrderType.mostRecent;
return sortOrderType != SearchEmailFilter.defaultSortOrder;
case QuickSearchFilter.dateTime:
return searchFilter.emailReceiveTimeType != EmailReceiveTimeType.allTime;
case QuickSearchFilter.from:
@@ -17,6 +17,9 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/sear
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
class SearchEmailFilter with EquatableMixin, OptionParamMixin {
static const EmailSortOrderType defaultSortOrder = EmailSortOrderType.relevance;
final Set<String> from;
final Set<String> to;
final SearchQuery? text;
@@ -56,7 +59,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
hasAttachment = hasAttachment ?? false,
emailReceiveTimeType =
emailReceiveTimeType ?? EmailReceiveTimeType.allTime,
sortOrderType = sortOrderType ?? EmailSortOrderType.mostRecent;
sortOrderType = sortOrderType ?? defaultSortOrder;
SearchEmailFilter copyWith({
Option<Set<String>>? fromOption,
@@ -189,7 +192,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
hasKeyword.isNotEmpty == true ||
notKeyword.isNotEmpty == true ||
emailReceiveTimeType != EmailReceiveTimeType.allTime ||
sortOrderType != EmailSortOrderType.mostRecent ||
sortOrderType != SearchEmailFilter.defaultSortOrder ||
(mailbox != null && mailbox?.id != PresentationMailbox.unifiedMailbox.id) ||
hasAttachment;
@@ -103,7 +103,7 @@ class SearchEmailController extends BaseController
final searchIsRunning = RxBool(false);
final emailReceiveTimeType = EmailReceiveTimeType.allTime.obs;
final selectionMode = Rx<SelectMode>(SelectMode.INACTIVE);
final emailSortOrderType = EmailSortOrderType.mostRecent.obs;
final emailSortOrderType = SearchEmailFilter.defaultSortOrder.obs;
final suggestionSearchViewState = Rx<Either<Failure, Success>>(Right(UIState.idle));
final resultSearchViewState = Rx<Either<Failure, Success>>(Right(UIState.idle));
@@ -589,7 +589,7 @@ class SearchEmailController extends BaseController
listSuggestionSearch.clear();
listResultSearch.clear();
emailReceiveTimeType.value = EmailReceiveTimeType.allTime;
emailSortOrderType.value = EmailSortOrderType.mostRecent;
emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
searchEmailFilter.value = SearchEmailFilter.initial();
searchIsRunning.value = false;
final isMailAddress = EmailUtils.isEmailAddressValid(queryString);
@@ -1017,8 +1017,8 @@ class SearchEmailController extends BaseController
}
void _deleteSortOrderSearchFilter(BuildContext context) {
emailSortOrderType.value = EmailSortOrderType.mostRecent;
_updateSimpleSearchFilter(sortOrderTypeOption: const Some(EmailSortOrderType.mostRecent));
emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
_updateSimpleSearchFilter(sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder));
_searchEmailAction(context);
}
@@ -1056,7 +1056,7 @@ class SearchEmailController extends BaseController
canSearchMore = true;
searchMoreState = SearchMoreState.idle;
emailReceiveTimeType.value = EmailReceiveTimeType.allTime;
emailSortOrderType.value = EmailSortOrderType.mostRecent;
emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
searchEmailFilter.value = SearchEmailFilter.initial();
_searchEmailAction(context);
}