diff --git a/assets/images/ic_chevron_down_outline.svg b/assets/images/ic_chevron_down_outline.svg
new file mode 100644
index 000000000..832fade05
--- /dev/null
+++ b/assets/images/ic_chevron_down_outline.svg
@@ -0,0 +1,3 @@
+
diff --git a/core/lib/presentation/resources/image_paths.dart b/core/lib/presentation/resources/image_paths.dart
index 8a3931e56..8bc01332f 100644
--- a/core/lib/presentation/resources/image_paths.dart
+++ b/core/lib/presentation/resources/image_paths.dart
@@ -160,6 +160,7 @@ class ImagePaths {
String get icClock => _getImagePath('ic_clock.svg');
String get icCalendar => _getImagePath('ic_calendar.svg');
String get icAddEmailForward => _getImagePath('ic_add_email_forwards.svg');
+ String get icChevronDownOutline => _getImagePath('ic_chevron_down_outline.svg');
String _getImagePath(String imageName) {
return AssetsPaths.images + imageName;
diff --git a/lib/features/search/presentation/model/simple_search_filter.dart b/lib/features/search/presentation/model/simple_search_filter.dart
index ebe2c03db..9b82b7655 100644
--- a/lib/features/search/presentation/model/simple_search_filter.dart
+++ b/lib/features/search/presentation/model/simple_search_filter.dart
@@ -1,4 +1,5 @@
import 'package:equatable/equatable.dart';
+import 'package:flutter/material.dart';
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
import 'package:jmap_dart_client/jmap/core/filter/filter_operator.dart';
import 'package:jmap_dart_client/jmap/core/filter/operator/logic_filter_operator.dart';
@@ -7,9 +8,11 @@ import 'package:jmap_dart_client/jmap/mail/email/email_filter_condition.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart';
+import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class SimpleSearchFilter with EquatableMixin {
final Set from;
+ final Set to;
final SearchQuery? text;
final PresentationMailbox? mailbox;
final EmailReceiveTimeType emailReceiveTimeType;
@@ -18,17 +21,20 @@ class SimpleSearchFilter with EquatableMixin {
SimpleSearchFilter({
Set? from,
+ Set? to,
EmailReceiveTimeType? emailReceiveTimeType,
bool? hasAttachment,
this.text,
this.before,
this.mailbox,
}) : from = from ?? {},
+ to = to ?? {},
hasAttachment = hasAttachment ?? false,
emailReceiveTimeType = emailReceiveTimeType ?? EmailReceiveTimeType.allTime;
SimpleSearchFilter copyWith({
Set? from,
+ Set? to,
SearchQuery? text,
PresentationMailbox? mailbox,
EmailReceiveTimeType? emailReceiveTimeType,
@@ -37,6 +43,7 @@ class SimpleSearchFilter with EquatableMixin {
}) {
return SimpleSearchFilter(
from: from ?? this.from,
+ to: to ?? this.to,
text: text ?? this.text,
mailbox: mailbox ?? this.mailbox,
emailReceiveTimeType: emailReceiveTimeType ?? this.emailReceiveTimeType,
@@ -63,6 +70,10 @@ class SimpleSearchFilter with EquatableMixin {
LogicFilterOperator(
Operator.AND,
from.map((e) => EmailFilterCondition(from: e)).toSet()),
+ if (to.isNotEmpty)
+ LogicFilterOperator(
+ Operator.AND,
+ to.map((e) => EmailFilterCondition(to: e)).toSet()),
};
return listEmailCondition.isNotEmpty
@@ -71,7 +82,7 @@ class SimpleSearchFilter with EquatableMixin {
}
@override
- List