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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user