TF-267 Fix bug display a full page for sorting results

This commit is contained in:
dab246
2022-03-08 09:09:30 +07:00
committed by Dat H. Pham
parent 7beebfebc8
commit 5f2799ee79
22 changed files with 323 additions and 107 deletions
+4 -2
View File
@@ -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() ?? [];
+1
View File
@@ -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';