From 8de66187b04d50eb6922c25fb010ec544b0e993f Mon Sep 17 00:00:00 2001 From: dab246 Date: Wed, 24 Sep 2025 16:36:52 +0700 Subject: [PATCH] TF-4056 Persist filter search when change quick search input text --- .../mailbox_dashboard_controller.dart | 1 - .../controller/search_controller.dart | 21 +++++++++---------- .../widgets/search_input_form_widget.dart | 6 ------ .../presentation/search_email_controller.dart | 3 --- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart index fb112c6dd..9cd90e293 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -968,7 +968,6 @@ class MailboxDashBoardController extends ReloadableController void searchEmailByQueryString(String queryString) { final isMailAddress = EmailUtils.isEmailAddressValid(queryString); log('MailboxDashBoardController::searchEmailByQueryString():QueryString = $queryString | isMailAddress = $isMailAddress'); - clearFilterMessageOption(); if (_searchInsideThreadDetailViewIsActive()) { _closeEmailDetailedView(); } diff --git a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart index 9fbc9b7c1..87010b416 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart @@ -143,17 +143,16 @@ class SearchController extends BaseController with DateRangePickerMixin { void applyFilterSuggestionToSearchFilter(String currentUserEmail) { final receiveTime = listFilterOnSuggestionForm.contains(QuickSearchFilter.last7Days) ? EmailReceiveTimeType.last7Days - : EmailReceiveTimeType.allTime; + : null; - final hasAttachment = listFilterOnSuggestionForm.contains(QuickSearchFilter.hasAttachment) ? true : false; + final hasAttachment = listFilterOnSuggestionForm.contains(QuickSearchFilter.hasAttachment) + ? true + : null; var listFromAddress = searchEmailFilter.value.from; - if (currentUserEmail.isNotEmpty) { - if (listFilterOnSuggestionForm.contains(QuickSearchFilter.fromMe)) { - listFromAddress.add(currentUserEmail); - } else { - listFromAddress.remove(currentUserEmail); - } + if (currentUserEmail.isNotEmpty && + listFilterOnSuggestionForm.contains(QuickSearchFilter.fromMe)) { + listFromAddress.add(currentUserEmail); } final listHasKeyword = listFilterOnSuggestionForm.contains(QuickSearchFilter.starred) @@ -161,10 +160,10 @@ class SearchController extends BaseController with DateRangePickerMixin { : null; updateFilterEmail( - emailReceiveTimeTypeOption: Some(receiveTime), - hasAttachmentOption: Some(hasAttachment), + emailReceiveTimeTypeOption: receiveTime != null ? Some(receiveTime) : null, + hasAttachmentOption: hasAttachment != null ? Some(hasAttachment) : null, fromOption: Some(listFromAddress), - hasKeywordOption: optionOf(listHasKeyword), + hasKeywordOption: listHasKeyword != null ? Some(listHasKeyword) : null, ); clearFilterSuggestion(); diff --git a/lib/features/mailbox_dashboard/presentation/widgets/search_input_form_widget.dart b/lib/features/mailbox_dashboard/presentation/widgets/search_input_form_widget.dart index a0ec733d7..1573d2deb 100644 --- a/lib/features/mailbox_dashboard/presentation/widgets/search_input_form_widget.dart +++ b/lib/features/mailbox_dashboard/presentation/widgets/search_input_form_widget.dart @@ -168,9 +168,6 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { } if (queryString.isNotEmpty || _searchController.listFilterOnSuggestionForm.isNotEmpty) { - _searchController.clearSearchFilter( - sortOrderType: _dashBoardController.currentSortOrder, - ); _searchController.applyFilterSuggestionToSearchFilter( _dashBoardController.ownEmailAddress.value, ); @@ -208,9 +205,6 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { _searchController.searchInputController.text = recent.value; _searchController.searchFocus.unfocus(); _searchController.enableSearch(); - _searchController.clearSearchFilter( - sortOrderType: _dashBoardController.currentSortOrder, - ); _searchController.applyFilterSuggestionToSearchFilter( _dashBoardController.ownEmailAddress.value, ); diff --git a/lib/features/search/email/presentation/search_email_controller.dart b/lib/features/search/email/presentation/search_email_controller.dart index 4913a9b0f..43bd6a3ec 100644 --- a/lib/features/search/email/presentation/search_email_controller.dart +++ b/lib/features/search/email/presentation/search_email_controller.dart @@ -603,9 +603,6 @@ class SearchEmailController extends BaseController listResultSearch.clear(); emailReceiveTimeType.value = EmailReceiveTimeType.allTime; emailSortOrderType.value = mailboxDashBoardController.currentSortOrder; - searchEmailFilter.value = SearchEmailFilter.withSortOrder( - emailSortOrderType.value, - ); searchIsRunning.value = false; final isMailAddress = EmailUtils.isEmailAddressValid(queryString); if (isMailAddress) {