Fix Sort Order not synchronized between Advanced Search dialog and dashboard screen when clicking Clear Filter

This commit is contained in:
dab246
2025-08-26 18:43:42 +07:00
committed by Dat H. Pham
parent a10ab68733
commit e9c66404d3
4 changed files with 17 additions and 6 deletions
@@ -83,6 +83,11 @@ class AdvancedFilterController extends BaseController {
_memorySearchFilter = SearchEmailFilter.withSortOrder(emailSortOrderType); _memorySearchFilter = SearchEmailFilter.withSortOrder(emailSortOrderType);
} }
void _updateSortOrder(EmailSortOrderType emailSortOrderType) {
sortOrderType.value = emailSortOrderType;
_updateMemorySearchFilter(sortOrderTypeOption: Some(emailSortOrderType));
}
void clearSearchFilter() { void clearSearchFilter() {
_memorySearchFilter = SearchEmailFilter.withSortOrder(sortOrderType.value); _memorySearchFilter = SearchEmailFilter.withSortOrder(sortOrderType.value);
_resetAllToOriginalValue(); _resetAllToOriginalValue();
@@ -486,7 +491,7 @@ class AdvancedFilterController extends BaseController {
} else if (action is ClearSearchFilterAppliedAction) { } else if (action is ClearSearchFilterAppliedAction) {
clearSearchFilter(); clearSearchFilter();
} else if (action is SynchronizeEmailSortOrderAction) { } else if (action is SynchronizeEmailSortOrderAction) {
_setUpDefaultSortOrder(action.emailSortOrderType); _updateSortOrder(action.emailSortOrderType);
} }
} }
); );
@@ -2191,6 +2191,7 @@ class MailboxDashBoardController extends ReloadableController
void _deleteSortOrderSearchFilter() { void _deleteSortOrderSearchFilter() {
searchController.updateFilterEmail( searchController.updateFilterEmail(
sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder)); sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder));
storeEmailSortOrder(SearchEmailFilter.defaultSortOrder);
dispatchAction(StartSearchEmailAction()); dispatchAction(StartSearchEmailAction());
} }
@@ -68,10 +68,10 @@ class SearchController extends BaseController with DateRangePickerMixin {
isAdvancedSearchViewOpen.value = false; isAdvancedSearchViewOpen.value = false;
} }
void clearSearchFilter({ void clearSearchFilter({EmailSortOrderType? sortOrderType}) {
EmailSortOrderType sortOrderType = SearchEmailFilter.defaultSortOrder, searchEmailFilter.value = SearchEmailFilter.withSortOrder(
}) { sortOrderType ?? searchEmailFilter.value.sortOrderType,
searchEmailFilter.value = SearchEmailFilter.withSortOrder(sortOrderType); );
} }
void synchronizeSearchFilter(SearchEmailFilter searchFilter) { void synchronizeSearchFilter(SearchEmailFilter searchFilter) {
@@ -1030,7 +1030,12 @@ class SearchEmailController extends BaseController
void _deleteSortOrderSearchFilter(BuildContext context) { void _deleteSortOrderSearchFilter(BuildContext context) {
emailSortOrderType.value = SearchEmailFilter.defaultSortOrder; emailSortOrderType.value = SearchEmailFilter.defaultSortOrder;
_updateSimpleSearchFilter(sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder)); _updateSimpleSearchFilter(
sortOrderTypeOption: const Some(SearchEmailFilter.defaultSortOrder),
);
mailboxDashBoardController.storeEmailSortOrder(
SearchEmailFilter.defaultSortOrder,
);
_searchEmailAction(context); _searchEmailAction(context);
} }