From e9c66404d31f4406cd600039d8ced82f8640020c Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 26 Aug 2025 18:43:42 +0700 Subject: [PATCH] Fix Sort Order not synchronized between Advanced Search dialog and dashboard screen when clicking `Clear Filter` --- .../controller/advanced_filter_controller.dart | 7 ++++++- .../controller/mailbox_dashboard_controller.dart | 1 + .../presentation/controller/search_controller.dart | 8 ++++---- .../email/presentation/search_email_controller.dart | 7 ++++++- 4 files changed, 17 insertions(+), 6 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 66f28a7de..d26859197 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/advanced_filter_controller.dart @@ -83,6 +83,11 @@ class AdvancedFilterController extends BaseController { _memorySearchFilter = SearchEmailFilter.withSortOrder(emailSortOrderType); } + void _updateSortOrder(EmailSortOrderType emailSortOrderType) { + sortOrderType.value = emailSortOrderType; + _updateMemorySearchFilter(sortOrderTypeOption: Some(emailSortOrderType)); + } + void clearSearchFilter() { _memorySearchFilter = SearchEmailFilter.withSortOrder(sortOrderType.value); _resetAllToOriginalValue(); @@ -486,7 +491,7 @@ class AdvancedFilterController extends BaseController { } else if (action is ClearSearchFilterAppliedAction) { clearSearchFilter(); } else if (action is SynchronizeEmailSortOrderAction) { - _setUpDefaultSortOrder(action.emailSortOrderType); + _updateSortOrder(action.emailSortOrderType); } } ); 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 77293116e..f51e7f074 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart @@ -2191,6 +2191,7 @@ class MailboxDashBoardController extends ReloadableController void _deleteSortOrderSearchFilter() { searchController.updateFilterEmail( sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder)); + storeEmailSortOrder(SearchEmailFilter.defaultSortOrder); dispatchAction(StartSearchEmailAction()); } diff --git a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart index 413cf7c16..f12ee7868 100644 --- a/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/controller/search_controller.dart @@ -68,10 +68,10 @@ class SearchController extends BaseController with DateRangePickerMixin { isAdvancedSearchViewOpen.value = false; } - void clearSearchFilter({ - EmailSortOrderType sortOrderType = SearchEmailFilter.defaultSortOrder, - }) { - searchEmailFilter.value = SearchEmailFilter.withSortOrder(sortOrderType); + void clearSearchFilter({EmailSortOrderType? sortOrderType}) { + searchEmailFilter.value = SearchEmailFilter.withSortOrder( + sortOrderType ?? searchEmailFilter.value.sortOrderType, + ); } void synchronizeSearchFilter(SearchEmailFilter searchFilter) { diff --git a/lib/features/search/email/presentation/search_email_controller.dart b/lib/features/search/email/presentation/search_email_controller.dart index e36492e20..e335b061e 100644 --- a/lib/features/search/email/presentation/search_email_controller.dart +++ b/lib/features/search/email/presentation/search_email_controller.dart @@ -1030,7 +1030,12 @@ class SearchEmailController extends BaseController void _deleteSortOrderSearchFilter(BuildContext context) { emailSortOrderType.value = SearchEmailFilter.defaultSortOrder; - _updateSimpleSearchFilter(sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder)); + _updateSimpleSearchFilter( + sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder), + ); + mailboxDashBoardController.storeEmailSortOrder( + SearchEmailFilter.defaultSortOrder, + ); _searchEmailAction(context); }