remove all funtion duplicate in mailbox_dashboard_controller

This commit is contained in:
ManhNT
2022-06-24 16:06:16 +07:00
committed by Dat H. Pham
parent 313a3dad7e
commit 2cbe5f163c
3 changed files with 41 additions and 150 deletions
@@ -9,8 +9,12 @@ import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart';
import 'package:jmap_dart_client/jmap/mail/email/email_comparator_property.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/base_controller.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/get_all_recent_search_latest_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/quick_search_email_state.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/get_all_recent_search_latest_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/quick_search_email_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.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';
@@ -22,6 +26,8 @@ import 'package:tmail_ui_user/features/thread/presentation/model/search_status.d
class SearchController extends BaseController {
final QuickSearchEmailInteractor _quickSearchEmailInteractor;
final SaveRecentSearchInteractor _saveRecentSearchInteractor;
final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor;
final _mailboxDashBoardController = Get.find<MailboxDashBoardController>();
@@ -37,14 +43,23 @@ class SearchController extends BaseController {
get _userProfile => _mailboxDashBoardController.userProfile;
FocusNode searchFocus = FocusNode();
get searchEmailFilterValue => searchEmailFilter.value;
SearchEmailFilter get searchEmailFilterValue => searchEmailFilter.value;
FocusNode searchFocus = FocusNode();
SearchQuery? searchQuery;
SearchController(
this._quickSearchEmailInteractor,
this._saveRecentSearchInteractor,
this._getAllRecentSearchLatestInteractor,
);
@override
void onInit() {
_registerSearchFocusListener();
super.onInit();
}
selectOpenAdvanceSearch() {
isAdvancedSearchViewOpen.toggle();
}
@@ -121,7 +136,7 @@ class SearchController extends BaseController {
);
}
void registerSearchFocusListener() {
void _registerSearchFocusListener() {
searchFocus.addListener(() {
final hasFocus = searchFocus.hasFocus;
final query = searchEmailFilter.value.text?.value;
@@ -179,6 +194,19 @@ class SearchController extends BaseController {
}
}
void saveRecentSearch(RecentSearch recentSearch) {
consumeState(_saveRecentSearchInteractor.execute(recentSearch));
}
Future<List<RecentSearch>> getAllRecentSearchAction(String pattern) async {
return await _getAllRecentSearchLatestInteractor.execute(pattern: pattern)
.then((result) => result.fold(
(failure) => <RecentSearch>[],
(success) => success is GetAllRecentSearchLatestSuccess
? success.listRecentSearch
: <RecentSearch>[]));
}
@override
void onDone() {}