From 76cf422102c9af3861eff8955be9043f2099a39f Mon Sep 17 00:00:00 2001 From: dab246 Date: Thu, 4 May 2023 16:19:32 +0700 Subject: [PATCH] TF-1803 Fix can not clear 'Have the world' in advanced search (cherry picked from commit 9399bc613d1ad54a6b5d30b408f613269625fcde) --- .../controller/advanced_filter_controller.dart | 11 +++++------ .../controller/mailbox_dashboard_controller.dart | 6 ++++-- .../widgets/search_input_form_widget.dart | 4 ++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart index d9f88b8ff..6208efcd0 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart @@ -86,7 +86,7 @@ class AdvancedFilterController extends BaseController { searchController.searchInputController.clear(); searchController.deactivateAdvancedSearch(); searchController.isAdvancedSearchViewOpen.toggle(); - _mailboxDashBoardController.searchEmail(context, StringConvert.writeNullToEmpty(searchEmailFilter.text?.value)); + _mailboxDashBoardController.searchEmail(context); } void _updateFilterEmailFromAdvancedSearchView() { @@ -94,7 +94,7 @@ class AdvancedFilterController extends BaseController { searchController.updateFilterEmail(text: SearchQuery(hasKeyWordFilterInputController.text)); searchController.searchInputController.text = hasKeyWordFilterInputController.text; } else { - searchController.updateFilterEmail(text: SearchQuery(searchController.searchInputController.text)); + searchController.updateFilterEmail(text: SearchQuery.initial()); } if (notKeyWordFilterInputController.text.isNotEmpty) { @@ -103,12 +103,12 @@ class AdvancedFilterController extends BaseController { searchController.updateFilterEmail(notKeyword: {}); } - if(lastTextForm.isNotEmpty && !searchController.searchEmailFilter.value.from.contains(lastTextForm.value)){ + if (lastTextForm.isNotEmpty && !searchController.searchEmailFilter.value.from.contains(lastTextForm.value)){ searchController.updateFilterEmail(fromOption: Some(searchController.searchEmailFilter.value.from..add(lastTextForm.value))); lastTextForm.value = ''; } - if(lastTextTo.isNotEmpty && !searchController.searchEmailFilter.value.to.contains(lastTextTo.value)){ + if (lastTextTo.isNotEmpty && !searchController.searchEmailFilter.value.to.contains(lastTextTo.value)){ searchController.updateFilterEmail( to: searchController.searchEmailFilter.value.to..add(lastTextTo.value), ); @@ -170,8 +170,7 @@ class AdvancedFilterController extends BaseController { searchController.updateFilterEmail(beforeOption: const None()); } searchController.isAdvancedSearchViewOpen.toggle(); - _mailboxDashBoardController.searchEmail( - context, StringConvert.writeNullToEmpty(searchEmailFilter.text?.value)); + _mailboxDashBoardController.searchEmail(context); } void _checkContactPermission() async { 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 386231d02..5b82f1a68 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -528,13 +528,15 @@ class MailboxDashBoardController extends ReloadableController { bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE; - void searchEmail(BuildContext context, String value) { + void searchEmail(BuildContext context, {String? queryString}) { log('MailboxDashBoardController::searchEmail():'); clearFilterMessageOption(); if (searchController.listFilterOnSuggestionForm.isNotEmpty) { searchController.applyFilterSuggestionToSearchFilter(userProfile.value); } - searchController.updateFilterEmail(text: SearchQuery(value)); + if (queryString?.isNotEmpty == true) { + searchController.updateFilterEmail(text: SearchQuery(queryString!)); + } dispatchAction(StartSearchEmailAction()); KeyboardUtils.hideKeyboard(context); if (_searchInsideEmailDetailedViewIsActive(context)) { 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 b777efc7f..c7ce8f0fb 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 @@ -125,7 +125,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { } if (query.isNotEmpty || dashBoardController.searchController.listFilterOnSuggestionForm.isNotEmpty) { - dashBoardController.searchEmail(context, query); + dashBoardController.searchEmail(context, queryString: query); } else { dashBoardController.clearSearchEmail(); } @@ -143,7 +143,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin { void _invokeSelectRecentItem(BuildContext context, RecentSearch recent) { dashBoardController.searchController.enableSearch(); dashBoardController.searchController.searchInputController.text = recent.value; - dashBoardController.searchEmail(context, recent.value); + dashBoardController.searchEmail(context, queryString: recent.value); } Widget _buildShowAllResultButton(BuildContext context, String keyword) {