TF-1155 Update value From field when click quick search action

Signed-off-by: dab246 <tdvu@linagora.com>
(cherry picked from commit eeb16993c41325bc1a617b533c4eaf94f5f32103)
This commit is contained in:
dab246
2023-11-08 16:51:37 +07:00
committed by Dat Vu
parent c94dfc5f00
commit f13bc5de61
11 changed files with 79 additions and 82 deletions
@@ -23,6 +23,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart' as search;
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/advanced_search_filter.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/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/manage_account/presentation/extensions/datetime_extension.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
@@ -342,18 +343,14 @@ class AdvancedFilterController extends BaseController {
}
void showFullEmailAddress(AdvancedSearchFilterField field) {
FocusManager.instance.primaryFocus?.unfocus();
switch(field) {
case AdvancedSearchFilterField.from:
fromAddressExpandMode.value = ExpandMode.EXPAND;
toAddressExpandMode.value = ExpandMode.COLLAPSE;
focusManager.fromFieldFocusNode.requestFocus();
focusManager.toFieldFocusNode.unfocus();
break;
case AdvancedSearchFilterField.to:
fromAddressExpandMode.value = ExpandMode.COLLAPSE;
toAddressExpandMode.value = ExpandMode.EXPAND;
focusManager.toFieldFocusNode.requestFocus();
focusManager.fromFieldFocusNode.unfocus();
break;
default:
break;
@@ -446,6 +443,10 @@ class AdvancedFilterController extends BaseController {
);
} else if (action is ClearDateRangeToAdvancedSearch) {
_updateDateRangeTime(action.receiveTime);
} else if (action is StartSearchEmailAction) {
if (action.filter == QuickSearchFilter.fromMe) {
_updateFromField();
}
}
}
);
@@ -470,6 +471,11 @@ class AdvancedFilterController extends BaseController {
_clearAllTextFieldInput();
}
void _updateFromField() {
final listEmailAddress = searchEmailFilter.from.map((address) => EmailAddress(null, address)).toList();
listFromEmailAddress = List.from(listEmailAddress);
}
@override
void onClose() {
_removeFocusListener();
@@ -1505,7 +1505,7 @@ class MailboxDashBoardController extends ReloadableController {
void selectQuickSearchFilterAction(QuickSearchFilter filter) {
log('MailboxDashBoardController::selectQuickSearchFilterAction(): filter: $filter');
selectQuickSearchFilter(filter);
dispatchAction(StartSearchEmailAction());
dispatchAction(StartSearchEmailAction(filter: filter));
}
void selectReceiveTimeQuickSearchFilter(BuildContext context, EmailReceiveTimeType receiveTime) {
@@ -1,6 +1,5 @@
import 'dart:async';
import 'package:core/presentation/utils/responsive_utils.dart';
import 'package:core/utils/app_logger.dart';
import 'package:dartz/dartz.dart';
import 'package:flutter/material.dart';
@@ -29,7 +28,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_re
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/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/mailbox_dashboard/presentation/widgets/advanced_search/advanced_search_filter_bottom_sheet.dart';
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
import 'package:tmail_ui_user/features/thread/presentation/model/search_state.dart';
@@ -40,8 +38,6 @@ class SearchController extends BaseController with DateRangePickerMixin {
final SaveRecentSearchInteractor _saveRecentSearchInteractor;
final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor;
final ResponsiveUtils _responsiveUtils = Get.find<ResponsiveUtils>();
final searchInputController = TextEditingController();
final searchEmailFilter = SearchEmailFilter.initial().obs;
final searchState = SearchState.initial().obs;
@@ -60,8 +56,12 @@ class SearchController extends BaseController with DateRangePickerMixin {
this._getAllRecentSearchLatestInteractor,
);
void selectOpenAdvanceSearch() {
isAdvancedSearchViewOpen.toggle();
void openAdvanceSearch() {
isAdvancedSearchViewOpen.value = true;
}
void closeAdvanceSearch() {
isAdvancedSearchViewOpen.value = false;
}
void clearSearchFilter() {
@@ -79,10 +79,8 @@ class SearchController extends BaseController with DateRangePickerMixin {
updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.allTime);
return;
case QuickSearchFilter.fromMe:
isFilterSelected
? searchEmailFilter.value.from.removeWhere((e) => e == userProfile.email)
: searchEmailFilter.value.from.add(userProfile.email);
updateFilterEmail(fromOption: Some(searchEmailFilter.value.from));
final newListEmailAddress = isFilterSelected ? <String>{} : <String>{userProfile.email};
updateFilterEmail(fromOption: Some(newListEmailAddress));
return;
}
}
@@ -244,14 +242,6 @@ class SearchController extends BaseController with DateRangePickerMixin {
: <RecentSearch>[]));
}
void showAdvancedFilterView(BuildContext context) async {
selectOpenAdvanceSearch();
if (_responsiveUtils.isMobile(context)) {
await showAdvancedSearchFilterBottomSheet(context);
selectOpenAdvanceSearch();
}
}
void activateSimpleSearch() {
simpleSearchIsActivated.value = true;
}