TF-3002 [MOBILE] Combine SimpleSearchFilter & SearchEmailFilter

This commit is contained in:
dab246
2024-09-13 12:12:15 +07:00
committed by Dat H. Pham
parent 1041470f2d
commit fec26a555b
9 changed files with 149 additions and 261 deletions
@@ -91,16 +91,19 @@ class AdvancedFilterController extends BaseController {
void _updateFilterEmailFromAdvancedSearchView() {
if (hasKeyWordFilterInputController.text.isNotEmpty) {
searchController.updateFilterEmail(text: SearchQuery(hasKeyWordFilterInputController.text));
searchController.updateFilterEmail(
textOption: Some(SearchQuery(hasKeyWordFilterInputController.text)));
searchController.searchInputController.text = hasKeyWordFilterInputController.text;
} else {
searchController.updateFilterEmail(text: SearchQuery.initial());
searchController.updateFilterEmail(
textOption: Some(SearchQuery.initial()));
}
if (notKeyWordFilterInputController.text.isNotEmpty) {
searchController.updateFilterEmail(notKeyword: notKeyWordFilterInputController.text.split(',').toSet());
searchController.updateFilterEmail(
notKeywordOption: Some(notKeyWordFilterInputController.text.split(',').toSet()));
} else {
searchController.updateFilterEmail(notKeyword: {});
searchController.updateFilterEmail(notKeywordOption: const None());
}
if (listFromEmailAddress.isNotEmpty) {
@@ -121,8 +124,8 @@ class AdvancedFilterController extends BaseController {
searchController.updateFilterEmail(
mailboxOption: optionOf(_destinationMailboxSelected),
subjectOption: optionOf(subjectFilterInputController.text),
emailReceiveTimeType: dateFilterSelectedFormAdvancedSearch.value,
hasAttachment: hasAttachment.value,
emailReceiveTimeTypeOption: optionOf(dateFilterSelectedFormAdvancedSearch.value),
hasAttachmentOption: optionOf(hasAttachment.value),
startDateOption: optionOf(startDate.value?.toUTCDate()),
endDateOption: optionOf(endDate.value?.toUTCDate())
);
@@ -672,7 +672,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
clearFilterMessageOption();
searchController.clearFilterSuggestion();
if (queryString?.isNotEmpty == true) {
searchController.updateFilterEmail(text: SearchQuery(queryString!));
searchController.updateFilterEmail(textOption: Some(SearchQuery(queryString!)));
}
searchController.updateFilterEmail(sortOrderOption: searchController.sortOrderFiltered.value.getSortOrder());
dispatchAction(StartSearchEmailAction());
@@ -1657,7 +1657,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
}
void selectHasAttachmentSearchFilter() {
searchController.updateFilterEmail(hasAttachment: true);
searchController.updateFilterEmail(hasAttachmentOption: const Some(true));
dispatchAction(StartSearchEmailAction());
}
@@ -1743,7 +1743,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
onCallbackAction: (startDate, endDate) {
dispatchAction(SelectDateRangeToAdvancedSearch(startDate, endDate));
searchController.updateFilterEmail(
emailReceiveTimeType: receiveTime,
emailReceiveTimeTypeOption: Some(receiveTime),
startDateOption: optionOf(startDate?.toUTCDate()),
endDateOption: optionOf(endDate?.toUTCDate()),
beforeOption: const None()
@@ -1754,7 +1754,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
} else {
dispatchAction(ClearDateRangeToAdvancedSearch(receiveTime));
searchController.updateFilterEmail(
emailReceiveTimeType: receiveTime,
emailReceiveTimeTypeOption: Some(receiveTime),
startDateOption: const None(),
endDateOption: const None(),
beforeOption: const None()
@@ -1774,7 +1774,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
void _deleteDateTimeSearchFilter() {
dispatchAction(ClearDateRangeToAdvancedSearch(EmailReceiveTimeType.allTime));
searchController.updateFilterEmail(
emailReceiveTimeType: EmailReceiveTimeType.allTime,
emailReceiveTimeTypeOption: const Some(EmailReceiveTimeType.allTime),
startDateOption: const None(),
endDateOption: const None(),
beforeOption: const None()
@@ -1800,7 +1800,7 @@ class MailboxDashBoardController extends ReloadableController with UserSettingPo
}
void _deleteHasAttachmentSearchFilter() {
searchController.updateFilterEmail(hasAttachment: false);
searchController.updateFilterEmail(hasAttachmentOption: const Some(false));
dispatchAction(StartSearchEmailAction());
}
@@ -146,8 +146,8 @@ class SearchController extends BaseController with DateRangePickerMixin {
}
updateFilterEmail(
emailReceiveTimeType: receiveTime,
hasAttachment: hasAttachment,
emailReceiveTimeTypeOption: Some(receiveTime),
hasAttachmentOption: Some(hasAttachment),
fromOption: Some(listFromAddress)
);
@@ -161,12 +161,12 @@ class SearchController extends BaseController with DateRangePickerMixin {
void updateFilterEmail({
Option<Set<String>>? fromOption,
Option<Set<String>>? toOption,
SearchQuery? text,
Option<SearchQuery>? textOption,
Option<String>? subjectOption,
Set<String>? notKeyword,
Option<Set<String>>? notKeywordOption,
Option<PresentationMailbox>? mailboxOption,
EmailReceiveTimeType? emailReceiveTimeType,
bool? hasAttachment,
Option<EmailReceiveTimeType>? emailReceiveTimeTypeOption,
Option<bool>? hasAttachmentOption,
Option<UTCDate>? beforeOption,
Option<UTCDate>? startDateOption,
Option<UTCDate>? endDateOption,
@@ -176,12 +176,12 @@ class SearchController extends BaseController with DateRangePickerMixin {
searchEmailFilter.value = searchEmailFilter.value.copyWith(
fromOption: fromOption,
toOption: toOption,
text: text,
textOption: textOption,
subjectOption: subjectOption,
notKeyword: notKeyword,
notKeywordOption: notKeywordOption,
mailboxOption: mailboxOption,
emailReceiveTimeType: emailReceiveTimeType,
hasAttachment: hasAttachment,
emailReceiveTimeTypeOption: emailReceiveTimeTypeOption,
hasAttachmentOption: hasAttachmentOption,
beforeOption: beforeOption,
startDateOption: startDateOption,
endDateOption: endDateOption,
@@ -199,6 +199,10 @@ class SearchController extends BaseController with DateRangePickerMixin {
PresentationMailbox? get mailboxFiltered => searchEmailFilter.value.mailbox;
Set<String> get listAddressOfToFiltered => searchEmailFilter.value.to;
Set<String> get listAddressOfFromFiltered => searchEmailFilter.value.from;
bool isSearchActive() =>
searchState.value.searchStatus == SearchStatus.ACTIVE;
@@ -218,7 +222,7 @@ class SearchController extends BaseController with DateRangePickerMixin {
}
void disableSimpleSearch() {
updateFilterEmail(text: SearchQuery.initial());
updateFilterEmail(textOption: Some(SearchQuery.initial()));
_clearAllTextInputSimpleSearch();
deactivateSimpleSearch();
hideSimpleSearchFormView();