72 lines
1.8 KiB
Dart
72 lines
1.8 KiB
Dart
import 'package:core/core.dart';
|
|
import 'package:jmap_dart_client/jmap/mail/email/email.dart';
|
|
import 'package:model/model.dart';
|
|
|
|
extension PresentationEmailExtension on PresentationEmail {
|
|
|
|
int numberOfAllEmailAddress() => to.numberEmailAddress() + cc.numberEmailAddress() + bcc.numberEmailAddress();
|
|
|
|
String getEmailDateTime(String newLocale, {String? pattern}) {
|
|
final emailTime = sentAt ?? receivedAt;
|
|
if (emailTime != null) {
|
|
return emailTime.formatDate(pattern: pattern ?? emailTime.value.toPattern(), locale: newLocale);
|
|
}
|
|
return '';
|
|
}
|
|
|
|
PresentationEmail toggleSelect() {
|
|
return PresentationEmail(
|
|
id,
|
|
keywords: keywords,
|
|
size: size,
|
|
receivedAt: receivedAt,
|
|
hasAttachment: hasAttachment,
|
|
preview: preview,
|
|
subject: subject,
|
|
sentAt: sentAt,
|
|
from: from,
|
|
to: to,
|
|
cc: cc,
|
|
bcc: bcc,
|
|
replyTo: replyTo,
|
|
selectMode: selectMode == SelectMode.INACTIVE ? SelectMode.ACTIVE : SelectMode.INACTIVE
|
|
);
|
|
}
|
|
|
|
PresentationEmail toSelectedEmail({required SelectMode selectMode}) {
|
|
return PresentationEmail(
|
|
id,
|
|
keywords: keywords,
|
|
size: size,
|
|
receivedAt: receivedAt,
|
|
hasAttachment: hasAttachment,
|
|
preview: preview,
|
|
subject: subject,
|
|
sentAt: sentAt,
|
|
from: from,
|
|
to: to,
|
|
cc: cc,
|
|
bcc: bcc,
|
|
replyTo: replyTo,
|
|
selectMode: selectMode
|
|
);
|
|
}
|
|
|
|
Email toEmail() {
|
|
return Email(
|
|
id,
|
|
keywords: keywords,
|
|
size: size,
|
|
receivedAt: receivedAt,
|
|
hasAttachment: hasAttachment,
|
|
preview: preview,
|
|
subject: subject,
|
|
sentAt: sentAt,
|
|
from: from,
|
|
to: to,
|
|
cc: cc,
|
|
bcc: bcc,
|
|
replyTo: replyTo
|
|
);
|
|
}
|
|
} |