From 7ef7aae2cea7ec36a51bafd087d13b3b2a395cab Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 13 Oct 2025 12:34:03 +0700 Subject: [PATCH] TF-4056 Keep in search when user clear text to search with current filter --- .../extensions/string_extension.dart | 2 ++ .../mailbox/presentation/mailbox_controller.dart | 6 ------ .../presentation/action/dashboard_action.dart | 2 -- .../controller/mailbox_dashboard_controller.dart | 5 ----- .../controller/search_controller.dart | 7 ------- .../widgets/search_input_form_widget.dart | 16 +++++++++------- 6 files changed, 11 insertions(+), 27 deletions(-) diff --git a/core/lib/presentation/extensions/string_extension.dart b/core/lib/presentation/extensions/string_extension.dart index d2414cf98..aa991aac1 100644 --- a/core/lib/presentation/extensions/string_extension.dart +++ b/core/lib/presentation/extensions/string_extension.dart @@ -98,4 +98,6 @@ extension StringExtension on String { return 0; } } + + String get trimmed => trim(); } \ No newline at end of file diff --git a/lib/features/mailbox/presentation/mailbox_controller.dart b/lib/features/mailbox/presentation/mailbox_controller.dart index 11e878906..752867eea 100644 --- a/lib/features/mailbox/presentation/mailbox_controller.dart +++ b/lib/features/mailbox/presentation/mailbox_controller.dart @@ -262,12 +262,6 @@ class MailboxController extends BaseMailboxController _handleNavigationRouteParameters ); - ever(mailboxDashBoardController.dashBoardAction, (action) { - if (action is ClearSearchEmailAction) { - _switchBackToMailboxDefault(); - } - }); - ever(mailboxDashBoardController.mailboxUIAction, (action) { if (action is SelectMailboxDefaultAction) { _switchBackToMailboxDefault(); diff --git a/lib/features/mailbox_dashboard/presentation/action/dashboard_action.dart b/lib/features/mailbox_dashboard/presentation/action/dashboard_action.dart index 614e00554..88695497b 100644 --- a/lib/features/mailbox_dashboard/presentation/action/dashboard_action.dart +++ b/lib/features/mailbox_dashboard/presentation/action/dashboard_action.dart @@ -58,8 +58,6 @@ class StartSearchEmailAction extends DashBoardAction {} class EmptyTrashAction extends DashBoardAction {} -class ClearSearchEmailAction extends DashBoardAction {} - class ClearAllFieldOfAdvancedSearchAction extends DashBoardAction {} class OpenEmailInsideMailboxFromLocationBar extends DashBoardAction { 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 9cd90e293..d65dd070d 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -998,11 +998,6 @@ class MailboxDashBoardController extends ReloadableController && dashboardRoute.value == DashboardRoutes.threadDetailed; } - void clearSearchEmail() { - dispatchAction(ClearSearchEmailAction()); - searchController.disableSimpleSearch(); - } - void _unSelectedMailbox() { selectedMailbox.value = null; } diff --git a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart index 87010b416..ec10a9464 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart @@ -231,13 +231,6 @@ class SearchController extends BaseController with DateRangePickerMixin { searchState.value = searchState.value.enableSearchState(); } - void disableSimpleSearch() { - updateFilterEmail(textOption: Some(SearchQuery.initial())); - _clearAllTextInputSimpleSearch(); - deactivateSimpleSearch(); - hideSimpleSearchFormView(); - } - void clearTextSearch() { searchInputController.clear(); searchFocus.requestFocus(); 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 1573d2deb..d550b1809 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 @@ -1,5 +1,6 @@ import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:core/presentation/extensions/string_extension.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/responsive_utils.dart'; import 'package:core/presentation/utils/theme_utils.dart'; @@ -160,21 +161,22 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { void _invokeSearchEmailAction(String queryString) { log('SearchInputFormWidget::_invokeSearchEmailAction:QueryString = $queryString'); + final trimmedQueryString = queryString.trimmed; + _searchController.searchFocus.unfocus(); _searchController.enableSearch(); - if (queryString.isNotEmpty) { - _saveRecentSearch(queryString); + if (trimmedQueryString.isNotEmpty) { + _saveRecentSearch(trimmedQueryString); } - if (queryString.isNotEmpty || _searchController.listFilterOnSuggestionForm.isNotEmpty) { + if (_searchController.listFilterOnSuggestionForm.isNotEmpty) { _searchController.applyFilterSuggestionToSearchFilter( _dashBoardController.ownEmailAddress.value, ); - _dashBoardController.searchEmailByQueryString(queryString); - } else { - _dashBoardController.clearSearchEmail(); } + + _dashBoardController.searchEmailByQueryString(trimmedQueryString); } void _saveRecentSearch(String queryString) { @@ -189,7 +191,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { _searchController.saveRecentSearch( accountId, userName, - RecentSearch.now(queryString), + RecentSearch.now(queryString.trimmed), ); }