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 hasAttachment = false.obs;
final startDate = Rxn<DateTime>(); final startDate = Rxn<DateTime>();
final endDate = Rxn<DateTime>(); final endDate = Rxn<DateTime>();
final sortOrderType = EmailSortOrderType.mostRecent.obs; final sortOrderType = EmailSortOrderType.defaultSortOrder.obs;
final selectedFolderName = Rxn<String>(); final selectedFolderName = Rxn<String>();
final GlobalKey<TagsEditorState> keyFromEmailTagEditor = GlobalKey<TagsEditorState>(); 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_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/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/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/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/create_new_rule_filter_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_identities_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() { void _deleteSortOrderSearchFilter() {
searchController.updateFilterEmail( searchController.updateFilterEmail(
sortOrderTypeOption: const Some(EmailSortOrderType.mostRecent)); sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder));
dispatchAction(StartSearchEmailAction()); dispatchAction(StartSearchEmailAction());
} }
@@ -43,7 +43,7 @@ enum QuickSearchFilter {
return AppLocalizations.of(context).fromMe; return AppLocalizations.of(context).fromMe;
case QuickSearchFilter.sortBy: case QuickSearchFilter.sortBy:
return sortOrderType?.getTitle(context) return sortOrderType?.getTitle(context)
?? AppLocalizations.of(context).mostRecent; ?? SearchEmailFilter.defaultSortOrder.getTitle(context);
case QuickSearchFilter.dateTime: case QuickSearchFilter.dateTime:
return receiveTimeType?.getTitle( return receiveTimeType?.getTitle(
context, context,
@@ -138,7 +138,7 @@ enum QuickSearchFilter {
currentUserEmail?.isNotEmpty == true && currentUserEmail?.isNotEmpty == true &&
currentUserEmail == searchFilter.from.first; currentUserEmail == searchFilter.from.first;
case QuickSearchFilter.sortBy: case QuickSearchFilter.sortBy:
return sortOrderType != EmailSortOrderType.mostRecent; return sortOrderType != SearchEmailFilter.defaultSortOrder;
case QuickSearchFilter.dateTime: case QuickSearchFilter.dateTime:
return searchFilter.emailReceiveTimeType != EmailReceiveTimeType.allTime; return searchFilter.emailReceiveTimeType != EmailReceiveTimeType.allTime;
case QuickSearchFilter.from: 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'; import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
class SearchEmailFilter with EquatableMixin, OptionParamMixin { class SearchEmailFilter with EquatableMixin, OptionParamMixin {
static const EmailSortOrderType defaultSortOrder = EmailSortOrderType.relevance;
final Set<String> from; final Set<String> from;
final Set<String> to; final Set<String> to;
final SearchQuery? text; final SearchQuery? text;
@@ -56,7 +59,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
hasAttachment = hasAttachment ?? false, hasAttachment = hasAttachment ?? false,
emailReceiveTimeType = emailReceiveTimeType =
emailReceiveTimeType ?? EmailReceiveTimeType.allTime, emailReceiveTimeType ?? EmailReceiveTimeType.allTime,
sortOrderType = sortOrderType ?? EmailSortOrderType.mostRecent; sortOrderType = sortOrderType ?? defaultSortOrder;
SearchEmailFilter copyWith({ SearchEmailFilter copyWith({
Option<Set<String>>? fromOption, Option<Set<String>>? fromOption,
@@ -189,7 +192,7 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
hasKeyword.isNotEmpty == true || hasKeyword.isNotEmpty == true ||
notKeyword.isNotEmpty == true || notKeyword.isNotEmpty == true ||
emailReceiveTimeType != EmailReceiveTimeType.allTime || emailReceiveTimeType != EmailReceiveTimeType.allTime ||
sortOrderType != EmailSortOrderType.mostRecent || sortOrderType != SearchEmailFilter.defaultSortOrder ||
(mailbox != null && mailbox?.id != PresentationMailbox.unifiedMailbox.id) || (mailbox != null && mailbox?.id != PresentationMailbox.unifiedMailbox.id) ||
hasAttachment; hasAttachment;
@@ -103,7 +103,7 @@ class SearchEmailController extends BaseController
final searchIsRunning = RxBool(false); final searchIsRunning = RxBool(false);
final emailReceiveTimeType = EmailReceiveTimeType.allTime.obs; final emailReceiveTimeType = EmailReceiveTimeType.allTime.obs;
final selectionMode = Rx<SelectMode>(SelectMode.INACTIVE); 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 suggestionSearchViewState = Rx<Either<Failure, Success>>(Right(UIState.idle));
final resultSearchViewState = 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(); listSuggestionSearch.clear();
listResultSearch.clear(); listResultSearch.clear();
emailReceiveTimeType.value = EmailReceiveTimeType.allTime; emailReceiveTimeType.value = EmailReceiveTimeType.allTime;
emailSortOrderType.value = EmailSortOrderType.mostRecent; emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
searchEmailFilter.value = SearchEmailFilter.initial(); searchEmailFilter.value = SearchEmailFilter.initial();
searchIsRunning.value = false; searchIsRunning.value = false;
final isMailAddress = EmailUtils.isEmailAddressValid(queryString); final isMailAddress = EmailUtils.isEmailAddressValid(queryString);
@@ -1017,8 +1017,8 @@ class SearchEmailController extends BaseController
} }
void _deleteSortOrderSearchFilter(BuildContext context) { void _deleteSortOrderSearchFilter(BuildContext context) {
emailSortOrderType.value = EmailSortOrderType.mostRecent; emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
_updateSimpleSearchFilter(sortOrderTypeOption: const Some(EmailSortOrderType.mostRecent)); _updateSimpleSearchFilter(sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder));
_searchEmailAction(context); _searchEmailAction(context);
} }
@@ -1056,7 +1056,7 @@ class SearchEmailController extends BaseController
canSearchMore = true; canSearchMore = true;
searchMoreState = SearchMoreState.idle; searchMoreState = SearchMoreState.idle;
emailReceiveTimeType.value = EmailReceiveTimeType.allTime; emailReceiveTimeType.value = EmailReceiveTimeType.allTime;
emailSortOrderType.value = EmailSortOrderType.mostRecent; emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
searchEmailFilter.value = SearchEmailFilter.initial(); searchEmailFilter.value = SearchEmailFilter.initial();
_searchEmailAction(context); _searchEmailAction(context);
} }