TF-1803 Fix can not clear 'Have the world' in advanced search

(cherry picked from commit 9399bc613d1ad54a6b5d30b408f613269625fcde)
This commit is contained in:
dab246
2023-05-04 16:19:32 +07:00
committed by Dat Vu
parent 8b8655b3e3
commit 76cf422102
3 changed files with 11 additions and 10 deletions
@@ -86,7 +86,7 @@ class AdvancedFilterController extends BaseController {
searchController.searchInputController.clear(); searchController.searchInputController.clear();
searchController.deactivateAdvancedSearch(); searchController.deactivateAdvancedSearch();
searchController.isAdvancedSearchViewOpen.toggle(); searchController.isAdvancedSearchViewOpen.toggle();
_mailboxDashBoardController.searchEmail(context, StringConvert.writeNullToEmpty(searchEmailFilter.text?.value)); _mailboxDashBoardController.searchEmail(context);
} }
void _updateFilterEmailFromAdvancedSearchView() { void _updateFilterEmailFromAdvancedSearchView() {
@@ -94,7 +94,7 @@ class AdvancedFilterController extends BaseController {
searchController.updateFilterEmail(text: SearchQuery(hasKeyWordFilterInputController.text)); searchController.updateFilterEmail(text: SearchQuery(hasKeyWordFilterInputController.text));
searchController.searchInputController.text = hasKeyWordFilterInputController.text; searchController.searchInputController.text = hasKeyWordFilterInputController.text;
} else { } else {
searchController.updateFilterEmail(text: SearchQuery(searchController.searchInputController.text)); searchController.updateFilterEmail(text: SearchQuery.initial());
} }
if (notKeyWordFilterInputController.text.isNotEmpty) { if (notKeyWordFilterInputController.text.isNotEmpty) {
@@ -103,12 +103,12 @@ class AdvancedFilterController extends BaseController {
searchController.updateFilterEmail(notKeyword: {}); 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))); searchController.updateFilterEmail(fromOption: Some(searchController.searchEmailFilter.value.from..add(lastTextForm.value)));
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( searchController.updateFilterEmail(
to: searchController.searchEmailFilter.value.to..add(lastTextTo.value), to: searchController.searchEmailFilter.value.to..add(lastTextTo.value),
); );
@@ -170,8 +170,7 @@ class AdvancedFilterController extends BaseController {
searchController.updateFilterEmail(beforeOption: const None()); searchController.updateFilterEmail(beforeOption: const None());
} }
searchController.isAdvancedSearchViewOpen.toggle(); searchController.isAdvancedSearchViewOpen.toggle();
_mailboxDashBoardController.searchEmail( _mailboxDashBoardController.searchEmail(context);
context, StringConvert.writeNullToEmpty(searchEmailFilter.text?.value));
} }
void _checkContactPermission() async { void _checkContactPermission() async {
@@ -528,13 +528,15 @@ class MailboxDashBoardController extends ReloadableController {
bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE; bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE;
void searchEmail(BuildContext context, String value) { void searchEmail(BuildContext context, {String? queryString}) {
log('MailboxDashBoardController::searchEmail():'); log('MailboxDashBoardController::searchEmail():');
clearFilterMessageOption(); clearFilterMessageOption();
if (searchController.listFilterOnSuggestionForm.isNotEmpty) { if (searchController.listFilterOnSuggestionForm.isNotEmpty) {
searchController.applyFilterSuggestionToSearchFilter(userProfile.value); searchController.applyFilterSuggestionToSearchFilter(userProfile.value);
} }
searchController.updateFilterEmail(text: SearchQuery(value)); if (queryString?.isNotEmpty == true) {
searchController.updateFilterEmail(text: SearchQuery(queryString!));
}
dispatchAction(StartSearchEmailAction()); dispatchAction(StartSearchEmailAction());
KeyboardUtils.hideKeyboard(context); KeyboardUtils.hideKeyboard(context);
if (_searchInsideEmailDetailedViewIsActive(context)) { if (_searchInsideEmailDetailedViewIsActive(context)) {
@@ -125,7 +125,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
} }
if (query.isNotEmpty || dashBoardController.searchController.listFilterOnSuggestionForm.isNotEmpty) { if (query.isNotEmpty || dashBoardController.searchController.listFilterOnSuggestionForm.isNotEmpty) {
dashBoardController.searchEmail(context, query); dashBoardController.searchEmail(context, queryString: query);
} else { } else {
dashBoardController.clearSearchEmail(); dashBoardController.clearSearchEmail();
} }
@@ -143,7 +143,7 @@ class SearchInputFormWidget extends StatelessWidget with AppLoaderMixin {
void _invokeSelectRecentItem(BuildContext context, RecentSearch recent) { void _invokeSelectRecentItem(BuildContext context, RecentSearch recent) {
dashBoardController.searchController.enableSearch(); dashBoardController.searchController.enableSearch();
dashBoardController.searchController.searchInputController.text = recent.value; dashBoardController.searchController.searchInputController.text = recent.value;
dashBoardController.searchEmail(context, recent.value); dashBoardController.searchEmail(context, queryString: recent.value);
} }
Widget _buildShowAllResultButton(BuildContext context, String keyword) { Widget _buildShowAllResultButton(BuildContext context, String keyword) {