diff --git a/lib/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart b/lib/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart index d7cc0a122..40ac399e6 100644 --- a/lib/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart +++ b/lib/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart @@ -20,25 +20,27 @@ abstract class BaseMailboxDashBoardView extends GetWidget[].obs; - final emailReceiveTimeType = Rxn(); final composerOverlayState = ComposerOverlayState.inActive.obs; Session? sessionCurrent; @@ -265,12 +264,17 @@ class MailboxDashBoardController extends ReloadableController { bool isSelectionEnabled() => currentSelectMode.value == SelectMode.ACTIVE; - void searchEmail(BuildContext context) { + void searchEmail(BuildContext context, String value) { + searchController.updateFilterEmail(text: SearchQuery(value)); dispatchState(Right(SearchEmailNewQuery(searchController.searchEmailFilter.value.text ?? SearchQuery.initial()))); FocusScope.of(context).unfocus(); if (_searchInsideEmailDetailedViewIsActive(context)) { _closeEmailDetailedView(); } + if (value.isEmpty){ + searchController.disableSearch(); + searchController.setEmailReceiveTimeType(null); + } } bool _searchInsideEmailDetailedViewIsActive(BuildContext context) { @@ -392,10 +396,6 @@ class MailboxDashBoardController extends ReloadableController { return null; } - void setEmailReceiveTimeType(EmailReceiveTimeType? receiveTimeType) { - emailReceiveTimeType.value = receiveTimeType; - } - bool filterMessageWithAttachmentIsActive () { return filterMessageOption.value == FilterMessageOption.attachments; } @@ -455,6 +455,26 @@ class MailboxDashBoardController extends ReloadableController { arguments: ManageAccountArguments(sessionCurrent)); } + void selectQuickSearchFilter({ + required QuickSearchFilter quickSearchFilter, + bool fromSuggestionBox = false, + }) => searchController.selectQuickSearchFilter( + quickSearchFilter: quickSearchFilter, + userProfile: userProfile.value!, + fromSuggestionBox: fromSuggestionBox, + ); + + bool checkQuickSearchFilterSelected({ + required QuickSearchFilter quickSearchFilter, + bool fromSuggestionBox = false, + }) => searchController.checkQuickSearchFilterSelected( + quickSearchFilter: quickSearchFilter, + userProfile: userProfile.value!, + fromSuggestionBox: fromSuggestionBox, + ); + + Future> quickSearchEmails() => searchController.quickSearchEmails(accountId: accountId.value!); + @override void onClose() { _emailReceiveManager.closeEmailReceiveManagerStream(); diff --git a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart index b9eadfcf3..3e79c1a9c 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:core/core.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; import 'package:jmap_dart_client/jmap/core/sort/comparator.dart'; import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_comparator.dart'; @@ -15,7 +16,6 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/quick_sear 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'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart'; @@ -29,8 +29,6 @@ class SearchController extends BaseController { final SaveRecentSearchInteractor _saveRecentSearchInteractor; final GetAllRecentSearchLatestInteractor _getAllRecentSearchLatestInteractor; - final _mailboxDashBoardController = Get.find(); - final searchInputController = TextEditingController(); final searchEmailFilter = SearchEmailFilter().obs; final searchState = SearchState.initial().obs; @@ -38,15 +36,11 @@ class SearchController extends BaseController { final dateFilterSelectedFormAdvancedSearch = EmailReceiveTimeType.allTime.obs; final mailboxFilterSelectedFormAdvancedSearch = Rxn(); final hasAttachment = false.obs; - - get _accountId => _mailboxDashBoardController.accountId; - - get _userProfile => _mailboxDashBoardController.userProfile; + final emailReceiveTimeType = Rxn(); get searchEmailFilterValue => searchEmailFilter.value; FocusNode searchFocus = FocusNode(); - SearchQuery? searchQuery; SearchController( this._quickSearchEmailInteractor, @@ -70,32 +64,40 @@ class SearchController extends BaseController { void selectQuickSearchFilter({ required QuickSearchFilter quickSearchFilter, + required UserProfile userProfile, bool fromSuggestionBox = false, }) { - final quickSearchFilterSelected = checkQuickSearchFilterSelected(quickSearchFilter: quickSearchFilter, fromSuggestionBox: fromSuggestionBox); + final quickSearchFilterSelected = checkQuickSearchFilterSelected( + userProfile: userProfile, + quickSearchFilter: quickSearchFilter, + fromSuggestionBox: fromSuggestionBox, + ); switch (quickSearchFilter) { case QuickSearchFilter.hasAttachment: updateFilterEmail(hasAttachment: !quickSearchFilterSelected); return; case QuickSearchFilter.last7Days: - final EmailReceiveTimeType? emailReceiveTimeType = quickSearchFilterSelected - ? EmailReceiveTimeType.allTime - : EmailReceiveTimeType.last7Days; - updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType); + if (quickSearchFilterSelected) { + setEmailReceiveTimeType(null); + updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.allTime); + } else { + setEmailReceiveTimeType(EmailReceiveTimeType.last7Days); + updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.last7Days); + } return; case QuickSearchFilter.fromMe: quickSearchFilterSelected - ? searchEmailFilter.value.from.remove(_userProfile.email) - : searchEmailFilter.value.from.add(_userProfile.email); + ? searchEmailFilter.value.from.remove(userProfile.email) + : searchEmailFilter.value.from.add(userProfile.email); updateFilterEmail(from: searchEmailFilter.value.from); return; } } - Future> quickSearchEmails() async { + Future> quickSearchEmails({required AccountId accountId}) async { return await _quickSearchEmailInteractor - .execute(_accountId, + .execute(accountId, limit: UnsignedInt(5), sort: {}..add( EmailComparator(EmailComparatorProperty.receivedAt) @@ -176,17 +178,21 @@ class SearchController extends BaseController { searchInputController.text = value; } - bool checkQuickSearchFilterSelected({required QuickSearchFilter quickSearchFilter, bool fromSuggestionBox = false}) { + bool checkQuickSearchFilterSelected({ + required QuickSearchFilter quickSearchFilter, + required UserProfile userProfile, + bool fromSuggestionBox = false, + }) { switch (quickSearchFilter) { case QuickSearchFilter.hasAttachment: return searchEmailFilter.value.hasAttachment == true; case QuickSearchFilter.last7Days: - if (fromSuggestionBox) { + if (emailReceiveTimeType.value != null) { return true; } return searchEmailFilter.value.emailReceiveTimeType == EmailReceiveTimeType.last7Days; case QuickSearchFilter.fromMe: - return searchEmailFilter.value.from.contains(_userProfile.email) && searchEmailFilter.value.from.length == 1; + return searchEmailFilter.value.from.contains(userProfile.email) && searchEmailFilter.value.from.length == 1; } } @@ -195,12 +201,17 @@ class SearchController extends BaseController { } Future> getAllRecentSearchAction(String pattern) async { - return await _getAllRecentSearchLatestInteractor.execute(pattern: pattern) + return await _getAllRecentSearchLatestInteractor + .execute(pattern: pattern) .then((result) => result.fold( (failure) => [], (success) => success is GetAllRecentSearchLatestSuccess - ? success.listRecentSearch - : [])); + ? success.listRecentSearch + : [])); + } + + void setEmailReceiveTimeType(EmailReceiveTimeType? receiveTimeType) { + emailReceiveTimeType.value = receiveTimeType; } @override diff --git a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart index c7498209e..2d7397dcc 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_view_web.dart @@ -9,6 +9,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view_web.dar import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart'; +import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart'; import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.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/widgets/email_quick_search_item_tile_widget.dart'; @@ -25,6 +26,8 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { MailboxDashBoardView({Key? key}) : super(key: key); + final SearchController searchController = Get.find(); + @override Widget build(BuildContext context) { if (controller.isDrawerOpen && (responsiveUtils.isDesktop(context) @@ -150,21 +153,21 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { if (controller.isSelectionEnabled()) { return _buildListButtonTopBarSelection(context); } else { - return controller.searchController.isSearchActive() + return searchController.isSearchActive() ? _buildListButtonTopBarSearchActive(context) : _buildListButtonTopBar(context); } }), const SizedBox(width: 16), - Obx(() => !controller.searchController.isSearchActive() ? const Spacer() : const SizedBox.shrink()), - Obx(() => controller.searchController.isSearchActive() + Obx(() => !searchController.isSearchActive() ? const Spacer() : const SizedBox.shrink()), + Obx(() => searchController.isSearchActive() ? Expanded(child: _buildSearchForm(context)) : (SearchBarView(imagePaths) ..hintTextSearch(AppLocalizations.of(context).search_emails) ..maxSizeWidth(240) - ..addOnOpenSearchViewAction(() => controller.searchController.enableSearch())) + ..addOnOpenSearchViewAction(() => searchController.enableSearch())) .build()), - Obx(() => !controller.searchController.isSearchActive() ? const SizedBox(width: 16) : const SizedBox.shrink()), + Obx(() => !searchController.isSearchActive() ? const SizedBox(width: 16) : const SizedBox.shrink()), Obx(() => (AvatarBuilder() ..text(controller.userProfile.value?.getAvatarText() ?? '') ..backgroundColor(Colors.white) @@ -410,19 +413,19 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { height: 45, child: QuickSearchInputForm( textFieldConfiguration: QuickSearchTextFieldConfiguration( - controller: controller.searchController.searchInputController, + controller: searchController.searchInputController, autofocus: true, - focusNode: controller.searchController.searchFocus, + focusNode: searchController.searchFocus, textInputAction: TextInputAction.done, onSubmitted: (keyword) { if (keyword.trim().isNotEmpty) { - controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); + searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.searchEmail(context); + controller.searchEmail(context, keyword); }, onChanged: (query) { log('MailboxDashBoardView::_buildSearchForm(): onChanged: $query'); - controller.searchController.onChangeTextSearch(query); + searchController.onChangeTextSearch(query); }, decoration: InputDecoration( border: InputBorder.none, @@ -444,11 +447,11 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { height: 16, fit: BoxFit.fill), onTap: () { - final keyword = controller.searchController.searchInputController.text; + final keyword = searchController.searchInputController.text; if (keyword.trim().isNotEmpty) { - controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); + searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.searchEmail(context); + controller.searchEmail(context, keyword); }), clearTextButton: buildIconWeb( icon: SvgPicture.asset( @@ -457,7 +460,7 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { height: 16, fit: BoxFit.fill), onTap: () { - controller.searchController.clearTextSearch(); + searchController.clearTextSearch(); }) ), suggestionsBoxDecoration: QuickSearchSuggestionsBoxDecoration( @@ -482,9 +485,10 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { }, buttonActionCallback: (filterAction) { if (filterAction is QuickSearchFilter) { - controller.searchController.selectQuickSearchFilter( + controller.selectQuickSearchFilter( quickSearchFilter: filterAction, - fromSuggestionBox: true); + fromSuggestionBox: true, + ); } }, listActionPadding: const EdgeInsets.only( @@ -505,9 +509,9 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { return InkWell( onTap: () { if (keyword.trim().isNotEmpty) { - controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); + searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.searchEmail(context); + controller.searchEmail(context, keyword); }, child: Padding( padding: const EdgeInsets.symmetric( @@ -537,17 +541,17 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView { child: loadingWidget, ), fetchRecentActionCallback: (pattern) async { - return controller.searchController.getAllRecentSearchAction(pattern); + return searchController.getAllRecentSearchAction(pattern); }, itemRecentBuilder: (context, recent) { return RecentSearchItemTileWidget(recent); }, onRecentSelected: (recent) { - controller.searchController.searchInputController.text = recent.value; - controller.searchEmail(context); + searchController.searchInputController.text = recent.value; + controller.searchEmail(context, recent.value); }, suggestionsCallback: (pattern) async { - return controller.searchController.quickSearchEmails(); + return controller.quickSearchEmails(); }, itemBuilder: (context, email) { return EmailQuickSearchItemTileWidget( diff --git a/lib/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart b/lib/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart index 4db452d2b..71accf2ab 100644 --- a/lib/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart +++ b/lib/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart @@ -13,7 +13,7 @@ enum EmailReceiveTimeType { String getTitle(BuildContext context) { switch(this) { case EmailReceiveTimeType.allTime: - return AppLocalizations.of(context).anyTime; + return AppLocalizations.of(context).allTime; case EmailReceiveTimeType.last7Days: return AppLocalizations.of(context).last7Days; case EmailReceiveTimeType.last30Days: diff --git a/lib/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart b/lib/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart index 3db09770e..9f752e743 100644 --- a/lib/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart +++ b/lib/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart @@ -23,7 +23,7 @@ enum QuickSearchFilter { } } - String getIcon(ImagePaths imagePaths, bool quickSearchFilterSelected) { + String getIcon(ImagePaths imagePaths, {required bool quickSearchFilterSelected}) { if (quickSearchFilterSelected) { return imagePaths.icSelectedSB; @@ -39,7 +39,7 @@ enum QuickSearchFilter { } } - Color getBackgroundColor(bool quickSearchFilterSelected) { + Color getBackgroundColor({required bool quickSearchFilterSelected}) { if (quickSearchFilterSelected) { return AppColor.colorItemEmailSelectedDesktop; @@ -48,7 +48,7 @@ enum QuickSearchFilter { } } - TextStyle getTextStyle(bool quickSearchFilterSelected) { + TextStyle getTextStyle({required bool quickSearchFilterSelected}) { if (quickSearchFilterSelected) { return const TextStyle( diff --git a/lib/features/thread/presentation/thread_controller.dart b/lib/features/thread/presentation/thread_controller.dart index f236f2fd3..1c48eeaab 100644 --- a/lib/features/thread/presentation/thread_controller.dart +++ b/lib/features/thread/presentation/thread_controller.dart @@ -1,6 +1,5 @@ import 'package:core/core.dart'; import 'package:dartz/dartz.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; @@ -106,8 +105,6 @@ class ThreadController extends BaseController { final ScrollController listEmailController = ScrollController(); late Worker mailboxWorker, searchWorker, dashboardActionWorker, viewStateWorker; - SearchQuery? get searchQuery => searchController.searchQuery; - Set? get _sortOrder => {} ..add(EmailComparator(EmailComparatorProperty.receivedAt) ..setIsAscending(false)); @@ -122,6 +119,8 @@ class ThreadController extends BaseController { String get currentTextSearch => searchController.searchInputController.text; + SearchQuery? get searchQuery => searchController.searchEmailFilter.value.text; + ThreadController( this._getEmailsInMailboxInteractor, this._markAsMultipleEmailReadInteractor, @@ -1206,7 +1205,9 @@ class ThreadController extends BaseController { } void selectQuickSearchFilter(QuickSearchFilter filter) { - searchController.selectQuickSearchFilter(quickSearchFilter: filter); + mailboxDashBoardController.selectQuickSearchFilter( + quickSearchFilter: filter, + ); _searchEmail(); } @@ -1220,8 +1221,16 @@ class ThreadController extends BaseController { void selectReceiveTimeQuickSearchFilter(EmailReceiveTimeType? emailReceiveTimeType) { popBack(); - searchController.updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType); - + if (emailReceiveTimeType != null) { + searchController.updateFilterEmail(emailReceiveTimeType: emailReceiveTimeType); + } else { + searchController.updateFilterEmail(emailReceiveTimeType: EmailReceiveTimeType.allTime); + } + searchController.setEmailReceiveTimeType(emailReceiveTimeType); + searchController.updateFilterEmail(); + if(searchQuery == null){ + searchController.updateFilterEmail(text: SearchQuery.initial()); + } _searchEmail(); } diff --git a/lib/features/thread/presentation/thread_view.dart b/lib/features/thread/presentation/thread_view.dart index 66ecd3f2a..4162108bd 100644 --- a/lib/features/thread/presentation/thread_view.dart +++ b/lib/features/thread/presentation/thread_view.dart @@ -190,7 +190,7 @@ class ThreadView extends GetWidget with AppLoaderMixin, if (keyword.trim().isNotEmpty) { controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.mailboxDashBoardController.searchEmail(context); + controller.mailboxDashBoardController.searchEmail(context, keyword); }, decoration: InputDecoration( border: InputBorder.none, @@ -216,7 +216,7 @@ class ThreadView extends GetWidget with AppLoaderMixin, if (keyword.trim().isNotEmpty) { controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.mailboxDashBoardController.searchEmail(context); + controller.mailboxDashBoardController.searchEmail(context, keyword); }), clearTextButton: buildIconWeb( icon: SvgPicture.asset( @@ -249,7 +249,10 @@ class ThreadView extends GetWidget with AppLoaderMixin, }, buttonActionCallback: (filterAction) { if (filterAction is QuickSearchFilter) { - controller.searchController.selectQuickSearchFilter(quickSearchFilter: filterAction, fromSuggestionBox: true); + controller.mailboxDashBoardController.selectQuickSearchFilter( + quickSearchFilter: filterAction, + fromSuggestionBox: true, + ); } }, listActionPadding: const EdgeInsets.only( @@ -272,7 +275,7 @@ class ThreadView extends GetWidget with AppLoaderMixin, if (keyword.trim().isNotEmpty) { controller.searchController.saveRecentSearch(RecentSearch.now(keyword)); } - controller.mailboxDashBoardController.searchEmail(context); + controller.mailboxDashBoardController.searchEmail(context, keyword); }, child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 14), @@ -307,10 +310,10 @@ class ThreadView extends GetWidget with AppLoaderMixin, }, onRecentSelected: (recent) { controller.searchController.updateTextSearch(recent.value); - controller.mailboxDashBoardController.searchEmail(context); + controller.mailboxDashBoardController.searchEmail(context, recent.value); }, suggestionsCallback: (pattern) async { - return controller.searchController.quickSearchEmails(); + return controller.mailboxDashBoardController.quickSearchEmails(); }, itemBuilder: (context, email) { return EmailQuickSearchItemTileWidget( @@ -516,7 +519,8 @@ class ThreadView extends GetWidget with AppLoaderMixin, controller.currentMailbox?.role, controller.mailboxDashBoardController.currentSelectMode.value, controller.searchController.searchState.value.searchStatus, - controller.searchQuery) + controller.searchQuery, + ) ..addOnPressEmailActionClick((action, email) => controller.pressEmailAction(context, action, email)) ..addOnMoreActionClick((email, position) => _responsiveUtils.isMobile(context) ? controller.openContextMenuAction(context, _contextMenuActionTile(context, email)) @@ -638,7 +642,9 @@ class ThreadView extends GetWidget with AppLoaderMixin, Widget _buildQuickSearchFilterButton( BuildContext context, QuickSearchFilter filter) { return Obx(() { - final quickSearchFilterSelected = controller.searchController.checkQuickSearchFilterSelected(quickSearchFilter: filter); + final quickSearchFilterSelected = controller.mailboxDashBoardController.checkQuickSearchFilterSelected( + quickSearchFilter: filter, + ); return Padding( padding: const EdgeInsets.only(right: 8), @@ -660,7 +666,7 @@ class ThreadView extends GetWidget with AppLoaderMixin, ); controller.openPopupReceiveTimeQuickSearchFilter(context, position, popupMenuEmailReceiveTimeType(context, - controller.mailboxDashBoardController.emailReceiveTimeType.value, + controller.searchController.emailReceiveTimeType.value, (receiveTime) => controller.selectReceiveTimeQuickSearchFilter(receiveTime))); } }, @@ -668,20 +674,20 @@ class ThreadView extends GetWidget with AppLoaderMixin, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: filter.getBackgroundColor(quickSearchFilterSelected)), + color: filter.getBackgroundColor(quickSearchFilterSelected: quickSearchFilterSelected)), padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [ SvgPicture.asset( - filter.getIcon(_imagePaths, quickSearchFilterSelected), + filter.getIcon(_imagePaths, quickSearchFilterSelected: quickSearchFilterSelected), width: 16, height: 16, fit: BoxFit.fill), const SizedBox(width: 4), Text( - filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value), + filter.getTitle(context, receiveTimeType: controller.searchController.emailReceiveTimeType.value), maxLines: 1, overflow: TextOverflow.ellipsis, - style: filter.getTextStyle(quickSearchFilterSelected), + style: filter.getTextStyle(quickSearchFilterSelected: quickSearchFilterSelected), ), if (filter == QuickSearchFilter.last7Days) ... [ @@ -738,25 +744,27 @@ class ThreadView extends GetWidget with AppLoaderMixin, Widget _buildQuickSearchFilterButtonSuggestionBox( BuildContext context, QuickSearchFilter filter) { return Obx(() { - final quickSearchFilterSelected = controller.searchController.checkQuickSearchFilterSelected(quickSearchFilter: filter); + final quickSearchFilterSelected = controller.mailboxDashBoardController.checkQuickSearchFilterSelected( + quickSearchFilter: filter, + ); return Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), - color: filter.getBackgroundColor(quickSearchFilterSelected)), + color: filter.getBackgroundColor(quickSearchFilterSelected: quickSearchFilterSelected)), padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), child: Row(mainAxisAlignment: MainAxisAlignment.center, children: [ SvgPicture.asset( - filter.getIcon(_imagePaths, quickSearchFilterSelected), + filter.getIcon(_imagePaths, quickSearchFilterSelected: quickSearchFilterSelected), width: 16, height: 16, fit: BoxFit.fill), const SizedBox(width: 4), Text( - filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value), + filter.getTitle(context), maxLines: 1, overflow: TextOverflow.ellipsis, - style: filter.getTextStyle(quickSearchFilterSelected), + style: filter.getTextStyle(quickSearchFilterSelected: quickSearchFilterSelected), ) ])); });