TF-267 Fix bug display a full page for sorting results
This commit is contained in:
@@ -2,14 +2,16 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
|
||||
import 'package:model/email/filter_message_option.dart';
|
||||
|
||||
class EmailFilter with EquatableMixin {
|
||||
|
||||
final Filter? filter;
|
||||
final FilterMessageOption? filterOption;
|
||||
final MailboxId? mailboxId;
|
||||
|
||||
EmailFilter({this.filter, this.mailboxId});
|
||||
EmailFilter({this.filter, this.filterOption, this.mailboxId});
|
||||
|
||||
@override
|
||||
List<Object?> get props => [filter, mailboxId];
|
||||
List<Object?> get props => [filter, filterOption, mailboxId];
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/email_extension.dart';
|
||||
|
||||
enum FilterMessageOption {
|
||||
all,
|
||||
unread,
|
||||
attachments,
|
||||
starred,
|
||||
}
|
||||
|
||||
extension FilterMessageOptionExtension on FilterMessageOption {
|
||||
|
||||
bool filterPresentationEmail(PresentationEmail email) {
|
||||
switch(this) {
|
||||
case FilterMessageOption.all:
|
||||
return true;
|
||||
case FilterMessageOption.unread:
|
||||
return email.isUnReadEmail();
|
||||
case FilterMessageOption.attachments:
|
||||
return email.withAttachments;
|
||||
case FilterMessageOption.starred:
|
||||
return email.isFlaggedEmail();
|
||||
}
|
||||
}
|
||||
|
||||
bool filterEmail(Email email) {
|
||||
switch(this) {
|
||||
case FilterMessageOption.all:
|
||||
return true;
|
||||
case FilterMessageOption.unread:
|
||||
return email.isUnReadEmail();
|
||||
case FilterMessageOption.attachments:
|
||||
return email.withAttachments;
|
||||
case FilterMessageOption.starred:
|
||||
return email.isFlaggedEmail();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,8 @@ extension EmailExtension on Email {
|
||||
|
||||
bool isFlaggedEmail() => keywords?.containsKey(KeyWordIdentifier.emailFlagged) == true;
|
||||
|
||||
bool get withAttachments => hasAttachment == true;
|
||||
|
||||
Set<String> getRecipientEmailAddressList() {
|
||||
final listEmailAddress = Set<String>();
|
||||
final listToAddress = to.getListAddress() ?? [];
|
||||
|
||||
@@ -30,6 +30,7 @@ export 'email/mark_star_action.dart';
|
||||
export 'email/email_property.dart';
|
||||
export 'email/email_filter.dart';
|
||||
export 'email/email_content_type.dart';
|
||||
export 'email/filter_message_option.dart';
|
||||
|
||||
// Extensions
|
||||
export 'extensions/email_address_extension.dart';
|
||||
|
||||
Reference in New Issue
Block a user