TF-3292 Fix [SEARCH] If I filter emails by date and then sort them by relevance, the filter isn't applied
This commit is contained in:
@@ -79,7 +79,7 @@ Accepted
|
||||
|
||||
Brief the logic flows when click `Sort Order` in search:
|
||||
|
||||
- To sort by `Subject`, `Sender` or `Relevance` we will have to use the `position` property and ignore `before` and `after` in `conditions` of `filter`
|
||||
- To sort by `Subject`, `Sender` or `Relevance` we will have to use the `position` property of `filter`
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
@@ -99,16 +99,12 @@ class SearchEmailFilter with EquatableMixin, OptionParamMixin {
|
||||
? text?.value.trim()
|
||||
: null,
|
||||
inMailbox: mailbox?.mailboxId,
|
||||
after: sortOrderType.isScrollByPosition()
|
||||
? null
|
||||
: emailReceiveTimeType.getAfterDate(startDate),
|
||||
after: emailReceiveTimeType.getAfterDate(startDate),
|
||||
hasAttachment: !hasAttachment ? null : hasAttachment,
|
||||
subject: subject?.trim().isNotEmpty == true
|
||||
? subject?.trim()
|
||||
: null,
|
||||
before: sortOrderType.isScrollByPosition()
|
||||
? null
|
||||
: emailReceiveTimeType.getBeforeDate(endDate, before),
|
||||
before: emailReceiveTimeType.getBeforeDate(endDate, before),
|
||||
from: from.length == 1
|
||||
? from.first
|
||||
: null,
|
||||
|
||||
@@ -215,7 +215,9 @@ class SearchEmailController extends BaseController
|
||||
currentSearchText.value = value;
|
||||
_updateSimpleSearchFilter(
|
||||
textOption: option(value.isNotEmpty, SearchQuery(value)),
|
||||
beforeOption: const None(),
|
||||
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||
? const None()
|
||||
: null,
|
||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0)
|
||||
);
|
||||
if (value.isNotEmpty && session != null && accountId != null) {
|
||||
@@ -319,7 +321,9 @@ class SearchEmailController extends BaseController
|
||||
: ThreadConstants.defaultLimit;
|
||||
|
||||
_updateSimpleSearchFilter(
|
||||
beforeOption: const None(),
|
||||
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||
? const None()
|
||||
: null,
|
||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
||||
);
|
||||
|
||||
@@ -435,7 +439,9 @@ class SearchEmailController extends BaseController
|
||||
|
||||
_updateSimpleSearchFilter(
|
||||
positionOption: option(searchEmailFilter.value.sortOrderType.isScrollByPosition(), 0),
|
||||
beforeOption: const None(),
|
||||
beforeOption: !searchEmailFilter.value.sortOrderType.isScrollByPosition()
|
||||
? const None()
|
||||
: null,
|
||||
);
|
||||
|
||||
consumeState(_searchEmailInteractor.execute(
|
||||
|
||||
@@ -949,7 +949,10 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
|
||||
searchController.updateFilterEmail(
|
||||
positionOption: option(_searchEmailFilter.sortOrderType.isScrollByPosition(), 0),
|
||||
beforeOption: const None());
|
||||
beforeOption: !_searchEmailFilter.sortOrderType.isScrollByPosition()
|
||||
? const None()
|
||||
: null,
|
||||
);
|
||||
|
||||
searchController.activateSimpleSearch();
|
||||
|
||||
@@ -1023,10 +1026,7 @@ class ThreadController extends BaseController with EmailActionController {
|
||||
if (_searchEmailFilter.sortOrderType.isScrollByPosition()) {
|
||||
final nextPosition = mailboxDashBoardController.emailsInCurrentMailbox.length;
|
||||
log('ThreadController::_searchMoreEmails:nextPosition: $nextPosition');
|
||||
searchController.updateFilterEmail(
|
||||
positionOption: Some(nextPosition),
|
||||
beforeOption: const None()
|
||||
);
|
||||
searchController.updateFilterEmail(positionOption: Some(nextPosition));
|
||||
} else if (_searchEmailFilter.sortOrderType == EmailSortOrderType.oldest) {
|
||||
searchController.updateFilterEmail(startDateOption: optionOf(lastEmail?.receivedAt));
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user